MainWindow.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QFrame>
  4. #include <QMainWindow>
  5. class PopUpAniStackedWidget;
  6. class QHBoxLayout;
  7. class NavigationInterface;
  8. class CustomTitleBar;
  9. class HomeView;
  10. class ProjectView;
  11. class ExpertManageView;
  12. class EvaluateView;
  13. class LoginView;
  14. class UserView;
  15. class AboutView;
  16. class SettingView;
  17. class QStackedWidget;
  18. class StackedWidget : public QFrame
  19. {
  20. Q_OBJECT
  21. public:
  22. StackedWidget(QWidget *parent = nullptr);
  23. void addWidget(QWidget *widget);
  24. void setCurrentWidget(QWidget *widget, bool popOut = false);
  25. void setCurrentIndex(int index, bool popOut = false);
  26. PopUpAniStackedWidget *view() const;
  27. signals:
  28. void currentWidgetChanged(QWidget *);
  29. private:
  30. QHBoxLayout *m_hBoxLayout;
  31. PopUpAniStackedWidget *m_view;
  32. };
  33. class MainWindow : public QMainWindow
  34. {
  35. Q_OBJECT
  36. public:
  37. MainWindow(QWidget *parent = nullptr);
  38. ~MainWindow();
  39. private:
  40. void initLoginPage();
  41. void initMainPage();
  42. void initNavigation();
  43. void setNaviInterfaceHidden(bool hidden);
  44. int titleBarIndent() const;
  45. void resizeEvent(QResizeEvent *event) override;
  46. private slots:
  47. void slotLogin();
  48. void slotLogout();
  49. void slotCancelLogin();
  50. void slotNaviItemClicked();
  51. private:
  52. CustomTitleBar *m_titleBar = 0;
  53. QStackedWidget *m_mainStackedWidget = 0;
  54. LoginView *m_loginView = 0;
  55. QWidget *m_mainWidget = 0;
  56. QHBoxLayout *m_hBoxLayout = 0;
  57. QHBoxLayout *m_widgetLayout = 0;
  58. StackedWidget *m_stackWidget = 0;
  59. NavigationInterface *m_naviInterface = 0;
  60. HomeView *m_homeView = 0;
  61. AboutView *m_aboutView = 0;
  62. SettingView *m_settingView = 0;
  63. UserView *m_userView = 0;
  64. };
  65. #endif // MAINWINDOW_H