JonYang 1 روز پیش
والد
کامیت
3589b2119b

+ 12 - 5
View/die-bonder-ui/OriginalWnd/DbTreeViewManager.cpp

@@ -121,7 +121,6 @@ void DbTreeViewManager::Init()
 
     m_pTreeCViewInterface = ns_module::CViewInterface::GetInstance();
 
-    m_pProgrammPage = new ProgrammPage();
 }
 
 // 创建横线样式
@@ -319,7 +318,7 @@ void DbTreeViewManager::initializeTree(QString name, const int &userPrivilege)
         // 填满 widget2
         m_thirdLevelFieldWnd->setGeometry(0, 0, m_pOriginalWndMenuPage->width(), m_pOriginalWndMenuPage->height());
 
-
+        m_pProgrammPage = new ProgrammPage();
 
         QVBoxLayout* mainLayout = new QVBoxLayout(m_thirdLevelFieldWnd);
         mainLayout->setContentsMargins(0, 0, 0, 0);
@@ -332,6 +331,16 @@ void DbTreeViewManager::initializeTree(QString name, const int &userPrivilege)
     }
     else 
     {
+
+        // 若已有第三层窗口,先关闭并释放
+        if (m_thirdLevelFieldWnd)
+        {
+            m_thirdLevelFieldWnd->close();
+            m_thirdLevelFieldWnd->deleteLater();
+            m_thirdLevelFieldWnd = nullptr;
+            m_pProgrammPage = nullptr;
+        }
+
         // **其他配置逻辑**
         // 设置 treeViewDown 的几何位置
         m_pTreeViewDown->setGeometry(16, 106, m_pOriginalWndMenuPage->width() - 16, m_pOriginalWndMenuPage->height() - 106);
@@ -2195,9 +2204,7 @@ void DbTreeViewManager::displayThirdLevelFields(const QList<ST_TABLE_CONTROL_DAT
                     
 
                         // 创建 QLabel 显示右边文本(比如 "分钟")
-                        QLabel* unitLabel = new QLabel(fieldUnits);
-                        unitLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
-                        unitLabel->setFixedHeight(28);
+                        QLabel* unitLabel = JIoMapPage::JCreateJText(fieldUnits);
                         //unitLabel->setStyleSheet("QLabel { font-size: 14px; }");
 
                         // 把 QLineEdit 和 QLabel 水平排列,确保 Qlabel 显示在 QLineEdit 右侧

+ 28 - 11
View/die-bonder-ui/OriginalWnd/TreeViewManager/JIoMapPage.cpp

@@ -121,37 +121,54 @@ void JIoMapPage::JCreateMenu(QWidget* pWidget, ST_DEFAULT_VAL defaultVal)
 QLabel* JIoMapPage::JCreateName0(const QString& fieldDescribe, const QString& fieldDescribe_Eng, int nlanguage)
 {
     QLabel* pNameLable = new QLabel();
+    pNameLable->setAlignment(Qt::AlignVCenter | Qt::AlignLeft);
+    pNameLable->setFixedHeight(24);
+
+    // 自定义大小
+    auto AdaptFun = [](QLabel* pNameLable, const QString name)
+    {
+        QFontMetrics metrics(pNameLable->font());
+        QString elidedText = metrics.elidedText(name, Qt::ElideRight, pNameLable->width());//180
+        pNameLable->setText(elidedText);
+    };
+
+
     if (nlanguage == 0)
     {
-        pNameLable->setText(fieldDescribe_Eng);
         if (fieldDescribe_Eng.isEmpty())
         {
-            pNameLable->setText(fieldDescribe);
+            AdaptFun(pNameLable, fieldDescribe);
+        }
+        else
+        {
+            AdaptFun(pNameLable, fieldDescribe_Eng);
         }
     }
     else
     {
-        pNameLable->setText(fieldDescribe);
         if (fieldDescribe.isEmpty())
         {
-            pNameLable->setText(fieldDescribe_Eng);
+            AdaptFun(pNameLable, fieldDescribe_Eng);
+        }
+        else
+        {
+            AdaptFun(pNameLable, fieldDescribe);
         }
     }
 
-    pNameLable->setAlignment(Qt::AlignVCenter | Qt::AlignLeft);
-    pNameLable->setFixedHeight(24);
-    pNameLable->setMinimumWidth(120);
-
     return pNameLable;
 }
 
 AutoResizeLabel* JIoMapPage::JCreateJText(const QString& name)
 {
     AutoResizeLabel* pLabel = new AutoResizeLabel();
-    pLabel->setText(name);
     pLabel->setAlignment(Qt::AlignVCenter | Qt::AlignLeft);
-    //pLabel->setFixedHeight(24);
-    //pLabel->setMinimumWidth(120);
+    pLabel->setFixedHeight(24);
+    //pLabel->setFixedWidth(300);
+
+    QFontMetrics metrics(pLabel->font());
+    QString elidedText = metrics.elidedText(name, Qt::ElideRight, pLabel->width()-330);
+    pLabel->setText(elidedText);
 
     return pLabel;
 }

+ 1 - 1
View/die-bonder-ui/Src/RewriteControl/LightJoystickSwitchPage.cpp

@@ -49,7 +49,7 @@ void LightJoystickSwitchPage::SliderBind()
 
 void LightJoystickSwitchPage::InitLineEdits()
 {
-    ui->switchTabWidget->tabBar()->hide();
+    //ui->switchTabWidget->tabBar()->hide();
     QList<QLineEdit*> lineEdits = {
         ui->RedLightlineEdit, ui->GreenLightlineEdit,
         ui->BlueLightlineEdit, ui->DotLightlineEdit,

+ 2 - 0
View/die-bonder-ui/Src/Sql/SqlOperation.cpp

@@ -359,6 +359,8 @@ int SqlOperation::loadAllControlData()
     rtn = LoadControlDataFromModule(CALIB_R_TABLE_NAME, controlData);
     if (rtn == 0) { m_allControlData.append(controlData); }
 
+    rtn = LoadControlDataFromModule(FORCE_CONTROL_TABLE_NAME, controlData);
+    if (rtn == 0) { m_allControlData.append(controlData); }
 
     for (auto it = m_mapAllDirectories.begin(); it != m_mapAllDirectories.end(); ++it)
     {