Hello, I want to build one menu and one action with QContextMenuEvent,but this code doesn't build.please help me.thank you.

Qt Code:
  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3. #include <QtWidgets>
  4. class widget:public QMainWindow
  5. {public:
  6. widget();
  7. void event(QContextMenuEvent*e);
  8. void createmenu(QMenu*filemenu);
  9. void createaction();
  10. };
  11. #endif // WIDGET_H
To copy to clipboard, switch view to plain text mode 
Qt Code:
  1. #include <QContextMenuEvent>
  2. #include <QtWidgets>
  3. #include "widget.h"
  4. widget::widget()
  5. {
  6. resize(250,250);
  7. }
  8. void widget::event(QContextMenuEvent*e)
  9. {Q_UNUSED(e);
  10. QMenu filemenu(this);
  11. createmenu(&filemenu);
  12. }
  13. void widget:: createmenu(QMenu*file)
  14. {
  15. file =menuBar()->addMenu("File");
  16. createaction();
  17. }
  18. void widget:: createaction()
  19. {
  20. QAction newact("Open",this);
  21. QKeySequence key(tr("Ctrl+O"));
  22. newact.setShortcut(key);
  23. }
To copy to clipboard, switch view to plain text mode 
Qt Code:
  1. #include "widget.h"
  2. #include <QtWidgets>
  3. int main(int argv,char*argc[])
  4. {
  5. QApplication app(argv,argc);
  6. widget window;
  7. window.show();
  8. return app.exec();
  9. }
To copy to clipboard, switch view to plain text mode