MainWindow.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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 initialize();
  43. void initWindow();
  44. void initLayout();
  45. void initNavigation();
  46. void connectSignalsAndSlots();
  47. void setNaviInterfaceHidden(bool hidden);
  48. int titleBarIndent() const;
  49. void resizeEvent(QResizeEvent *event) override;
  50. void showMainWidget();
  51. void switchTo(QWidget *widget, bool triggerByUser = true);
  52. private slots:
  53. void slotLogin();
  54. void slotLogout();
  55. void slotCancelLogin();
  56. void homeViewClicked();
  57. void projectViewClicked();
  58. void expertViewClicked();
  59. void aboutViewClicked();
  60. void dataViewClicked();
  61. void settingViewClicked();
  62. void userViewClicked();
  63. private:
  64. CustomTitleBar *m_titleBar;
  65. QStackedWidget *m_mainStackedWidget;
  66. LoginView *m_loginView;
  67. QWidget *m_mainWidget;
  68. QHBoxLayout *m_hBoxLayout;
  69. QHBoxLayout *m_widgetLayout;
  70. StackedWidget *m_stackWidget;
  71. NavigationInterface *m_naviInterface;
  72. HomeView *m_homeView;
  73. ProjectView *m_projectView;
  74. ExpertManageView *m_expertManageView;
  75. EvaluateView *m_evaluateView;
  76. AboutView *m_aboutView;
  77. SettingView *m_settingView;
  78. UserView *m_userView;
  79. };
  80. #endif // MAINWINDOW_H