JonYang 3 days ago
parent
commit
6e75e18b33

+ 65 - 50
View/die-bonder-ui/MainWnd.cpp

@@ -213,6 +213,7 @@ void MainWnd::ShowOriginalWndSlots()
         m_pOriginalWnd = new OriginalWnd(this, m_pCameraBind);
         ui->stackedWidget_UI->addWidget(m_pOriginalWnd);
         connect(this, &MainWnd::setLanguageSignal, m_pOriginalWnd, &OriginalWnd::onHandleLanguageSignal);
+        connect(m_pOriginalWnd, &OriginalWnd::sendDisableFeaturesSig, this, &MainWnd::GetDisableFeaturesSlots);
     }
     
     ui->stackedWidget_UI->setCurrentWidget(m_pOriginalWnd);
@@ -224,17 +225,37 @@ void MainWnd::CloseMainWndSlots()
     qApp->quit();
 }
 
+void MainWnd::GetDisableFeaturesSlots(bool isDisable)
+{
+    QToolButton* buttons[] = {
+    ui->tabHomeBtn, ui->tabProductionBtn, ui->tabProgramBtn,
+    ui->tabMessageBtn, ui->tabModuleBtn, ui->tabDispositionBtn,
+    ui->tabDiagnosisBtn, ui->tabSystemBtn, ui->tabHelpBtn
+    };
+
+
+    for (auto btn : buttons)
+    {
+        btn->setDisabled(isDisable);
+    }
+
+    ui->label_logo_m->setDisabled(isDisable);
+}
+
 void MainWnd::applyTheme(int themeValue)
 {
     QString qssFileName;
-    if (themeValue == 0) {
+    if (themeValue == 0) 
+    {
         qssFileName = ":/Src/Res/qss/light.qss";
     }
-    else {
+    else 
+    {
         qssFileName = ":/Src/Res/qss/dark.qss";
     }
     QFile qssFile(qssFileName);
-    if (qssFile.open(QFile::ReadOnly)) {
+    if (qssFile.open(QFile::ReadOnly)) 
+    {
         QString qssContent = qssFile.readAll();
         qApp->setStyleSheet(qssContent);
         qssFile.close();
@@ -775,56 +796,48 @@ void MainWnd::SwitchToConfig(void (OriginalWnd::* switchMethod)())
     ui->stackedWidget_UI->setCurrentWidget(m_pOriginalWnd);
 }
 
-void MainWnd::onCurrentWidgetChanged() {
+void MainWnd::onCurrentWidgetChanged()
+{
     QWidget* currentWidget = ui->stackedWidget_UI->currentWidget();
-    if (currentWidget) {
-        QString currentWidgetName = currentWidget->objectName();
+    if (!currentWidget)
+    {
+        return;
+    }
+
+    QString currentWidgetName = currentWidget->objectName();
+    QSettings settings("YourCompany", "YourApplication_style");
+    int flag = settings.value("Flag_Style", 0).toInt();
 
-        QSettings settings("YourCompany", "YourApplication_style");
-        int flag = settings.value("Flag_Style", 0).toInt();
+    // 获取所有需要操作的按钮指针数组
+    QToolButton* buttons[] = {
+        ui->tabHomeBtn, ui->tabProductionBtn, ui->tabProgramBtn,
+        ui->tabMessageBtn, ui->tabModuleBtn, ui->tabDispositionBtn,
+        ui->tabDiagnosisBtn, ui->tabSystemBtn, ui->tabHelpBtn
+    };
 
-        if (currentWidgetName == "Login") {
-            QString styleSheet;
-            if (flag == 0) {
-                styleSheet = "QToolButton:disabled { color: #808080; background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #F8FBFF, stop: 1 #E7ECF3); }"; // 设置禁用状态下的文本颜色为灰色
-            }
-            else if (flag == 1) {
-                styleSheet = "QToolButton:disabled { color: #B1B2D8; background: #7276AA;}";
-            }
+    if (currentWidgetName == "Login") 
+    {
+        QString styleSheet = (flag == 0)
+            ? "QToolButton:disabled { color: #808080; background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #F8FBFF, stop: 1 #E7ECF3); }"
+            : "QToolButton:disabled { color: #B1B2D8; background: #7276AA;}";
 
-            ui->tabHomeBtn->setDisabled(true);
-            ui->tabHomeBtn->setStyleSheet(styleSheet);
-            ui->tabProductionBtn->setDisabled(true);
-            ui->tabProductionBtn->setStyleSheet(styleSheet);
-            ui->tabProgramBtn->setDisabled(true);
-            ui->tabProgramBtn->setStyleSheet(styleSheet);
-            ui->tabMessageBtn->setDisabled(true);
-            ui->tabMessageBtn->setStyleSheet(styleSheet);
-            ui->tabModuleBtn->setDisabled(true);
-            ui->tabModuleBtn->setStyleSheet(styleSheet);
-            ui->tabDispositionBtn->setDisabled(true);
-            ui->tabDispositionBtn->setStyleSheet(styleSheet);
-            ui->tabDiagnosisBtn->setDisabled(true);
-            ui->tabDiagnosisBtn->setStyleSheet(styleSheet);
-            ui->tabSystemBtn->setDisabled(true);
-            ui->tabSystemBtn->setStyleSheet(styleSheet);
-            ui->tabHelpBtn->setDisabled(true);
-            ui->tabHelpBtn->setStyleSheet(styleSheet);
+        for (auto btn : buttons) 
+        {
+            btn->setDisabled(true);
+            btn->setStyleSheet(styleSheet);
         }
-        else {
-            ui->tabHomeBtn->setDisabled(false);
-            if (!initialIconSet) {
-               // ui->tabHomeBtn->setIcon(QIcon(":/images/deep/home.png"));
-                initialIconSet = true;
-            }
-            ui->tabProductionBtn->setDisabled(false);
-            ui->tabProgramBtn->setDisabled(false);
-            ui->tabMessageBtn->setDisabled(false);
-            ui->tabModuleBtn->setDisabled(false);
-            ui->tabDispositionBtn->setDisabled(false);
-            ui->tabDiagnosisBtn->setDisabled(false);
-            ui->tabSystemBtn->setDisabled(false);
-            ui->tabHelpBtn->setDisabled(false);
+    }
+    else 
+    {
+        if (!initialIconSet)
+        {
+            // ui->tabHomeBtn->setIcon(QIcon(":/images/deep/home.png"));
+            initialIconSet = true;
+        }
+
+        for (auto btn : buttons) 
+        {
+            btn->setDisabled(false);
         }
     }
 }
@@ -924,11 +937,13 @@ void MainWnd::switchLanguage(const QString& languageCode)
 {
     qApp->removeTranslator(&translator); // 先移除当前翻译器
 
-    if (languageCode == "en") {
+    if (languageCode == "en") 
+    {
         translator.load(":/Src/Res/Translate/SBT_en.qm");
         gen_if.setLanguageValue(0);
     }
-    else if (languageCode == "zh_CN") {
+    else if (languageCode == "zh_CN") 
+    {
         translator.load(":/Src/Res/Translate/SBT_zh_CN.qm");
         gen_if.setLanguageValue(1);
     }

+ 5 - 6
View/die-bonder-ui/MainWnd.h

@@ -86,16 +86,15 @@ private slots:
     void on_tabDiagnosisBtn_clicked();
 
     void on_tabSystemBtn_clicked();
-    // //从数据库中获取systemconfig表中的信息
-    // QJsonObject getInfofromDb();
-    // int getLanguageValue();
-    // int getThemeValue();
-    // void setLanguageValue(int data);
-    // void setThemeValue(int data);
+
 private slots:
     void ShowOriginalWndSlots();
     void CloseMainWndSlots();
 
+    /**禁用功能按钮
+     */
+    void GetDisableFeaturesSlots(bool isDisable);
+
 private:
     Ui::MainWnd* ui;
 

+ 14 - 0
View/die-bonder-ui/OriginalWnd/OriginalWnd.cpp

@@ -280,6 +280,20 @@ void OriginalWnd::on_stopButton_clicked()
     RunOrStopSwitch();
 }
 
+void OriginalWnd::DisableAllFeatures(bool isDisable)
+{
+    emit sendDisableFeaturesSig(isDisable);
+    ui->startButton->setDisabled(isDisable);
+    ui->ChartButton->setDisabled(isDisable);
+    ui->DoubleImageButton->setDisabled(isDisable);
+    ui->SingleImageButton->setDisabled(isDisable);
+    // 树菜单
+    ui->menuFunctionsSwitchWidget->setDisabled(isDisable);
+
+    //TODO:这里有歧义
+    ui->widget->setDisabled(isDisable);
+}
+
 void OriginalWnd::SwitchMainPage(JOriginalMainWnd* pWnd, QToolButton* tooBut)
 {
     if (m_pCameraBind.isNull())

+ 10 - 0
View/die-bonder-ui/OriginalWnd/OriginalWnd.h

@@ -141,7 +141,17 @@ public slots:
     void onHandleLanguageSignal(const int& data);
 
     void JRunFunSlots(ns_module::ST_BUTTON_FUN pra);
+
+signals:
+    void sendDisableFeaturesSig(bool isDisable);
+
+
 private:
+    /**禁用所有窗口
+     */
+    void DisableAllFeatures(bool isDisable);
+
+
     /**设置当前选中窗口
     */
     void SwitchMainPage(JOriginalMainWnd* pWnd, QToolButton* tooBut);