Browse Source

登入登出

chengxr 1 year ago
parent
commit
ccbabd2b02
2 changed files with 23 additions and 14 deletions
  1. 15 13
      QFD/view/MainWindow.cpp
  2. 8 1
      QFD/view/MainWindow.h

+ 15 - 13
QFD/view/MainWindow.cpp

@@ -78,15 +78,21 @@ MainWindow::~MainWindow() { }
 
 void MainWindow::initialize()
 {
-    m_titleBar   = new CustomTitleBar(this);
+    m_titleBar = new CustomTitleBar(this);
+
+    m_mainStackedWidget = new QStackedWidget(this);
+
+    m_loginView = new LoginView(this);
+
     m_mainWidget = new QWidget(this);
+    m_hBoxLayout = new QHBoxLayout(m_mainWidget);
 
     m_widgetLayout  = new QHBoxLayout();
     m_stackWidget   = new StackedWidget(this);
     m_naviInterface = new NavigationInterface(true, true, this);
 
-    m_homeView         = new HomeView(this);
-    m_loginView        = new LoginView(this);
+    m_homeView = new HomeView(this);
+
     m_projectView      = new ProjectView(this);
     m_evaluateView     = new EvaluateView(this);
     m_expertManageView = new ExpertManageView(this);
@@ -99,8 +105,6 @@ void MainWindow::initWindow()
 {
     setMinimumSize(QSize(1000, 800));
 
-    m_hBoxLayout = new QHBoxLayout(m_mainWidget);
-
     QFramelessHelper *helper = new QFramelessHelper(this);
     helper->setTitleBar(m_titleBar);
 
@@ -112,12 +116,14 @@ void MainWindow::initWindow()
     m_titleBar->setGeometry(QRect(titleBarIndent(), 0, width() - titleBarIndent(), m_titleBar->height()));
     m_titleBar->setIcon(icon);
     m_titleBar->setHidden(true);
-
-    setCentralWidget(m_loginView);
 }
 
 void MainWindow::initLayout()
 {
+    setCentralWidget(m_mainStackedWidget);
+    m_mainStackedWidget->addWidget(m_loginView);
+    m_mainStackedWidget->addWidget(m_mainWidget);
+
     m_hBoxLayout->setSpacing(0);
     m_hBoxLayout->setContentsMargins(0, 0, 0, 0);
     m_hBoxLayout->addWidget(m_naviInterface);
@@ -210,17 +216,13 @@ void MainWindow::switchTo(QWidget *widget, bool triggerByUser)
 
 void MainWindow::slotLogin()
 {
-    qDebug() << __FUNCTION__ << __LINE__ << (m_mainWidget == nullptr);
-    setCentralWidget(m_mainWidget);
+    m_mainStackedWidget->setCurrentWidget(m_mainWidget);
     m_titleBar->setHidden(false);
 }
 
 void MainWindow::slotLogout()
 {
-    qDebug() << __FUNCTION__ << __LINE__;
-    qDebug() << __FUNCTION__ << __LINE__ << (m_loginView == nullptr);
-    m_loginView = new LoginView(this);
-    setCentralWidget(m_loginView);
+    m_mainStackedWidget->setCurrentWidget(m_loginView);
     m_titleBar->setHidden(true);
 }
 

+ 8 - 1
QFD/view/MainWindow.h

@@ -18,6 +18,8 @@ class UserView;
 class AboutView;
 class SettingView;
 
+class QStackedWidget;
+
 class StackedWidget : public QFrame
 {
     Q_OBJECT
@@ -81,6 +83,11 @@ private slots:
 
 private:
     CustomTitleBar *m_titleBar;
+
+    QStackedWidget *m_mainStackedWidget;
+
+    LoginView *m_loginView;
+
     QWidget *m_mainWidget;
     QHBoxLayout *m_hBoxLayout;
     QHBoxLayout *m_widgetLayout;
@@ -91,7 +98,7 @@ private:
     ProjectView *m_projectView;
     ExpertManageView *m_expertManageView;
     EvaluateView *m_evaluateView;
-    LoginView *m_loginView;
+
     AboutView *m_aboutView;
     SettingView *m_settingView;
     UserView *m_userView;