JonYang 19 saat önce
ebeveyn
işleme
a33676930e

+ 3 - 21
View/die-bonder-ui/SBTdie-bonder-ui.pro

@@ -6,32 +6,14 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
 CONFIG += c++17
 
-#LIBS += -L"D:\qt\Interface_1.1" -lInterface
-# LIBS += -L"C:\Users\David\Desktop\Interface_1.1" -lInterface
-
 # You can make your code fail to compile if it uses deprecated APIs.
 # In order to do so, uncomment the following line.
 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 
 
-# SOURCES += $$files(src/*.cpp, $$PWD)
-# HEADERS += $$files(include/*.h, $$PWD)
-
-
-SOURCES += $$files(*.cpp, $$PWD) \
-    Src/RewriteControl/Controls/JReLineEdit.cpp \
-    Src/RewriteControl/MsgDlg/CustomMessageDlg.cpp \
-    Src/RewriteControl/SpeedAdjPage.cpp \
-    Src/RewriteControl/SpeedAdjWnd.cpp
-HEADERS += $$files(*.h, $$PWD) \
-    Src/RewriteControl/Controls/JReLineEdit.h \
-    Src/RewriteControl/MsgDlg/CustomMessageDlg.h \
-    Src/RewriteControl/SpeedAdjPage.h \
-    Src/RewriteControl/SpeedAdjWnd.h
-FORMS   += $$files(*.ui, $$PWD) \
-    Src/RewriteControl/MsgDlg/CustomMessageDlg.ui \
-    Src/RewriteControl/SpeedAdjPage.ui \
-    Src/RewriteControl/SpeedAdjWnd.ui
+SOURCES += $$files(*.cpp, $$PWD)
+HEADERS += $$files(*.h, $$PWD)
+FORMS   += $$files(*.ui, $$PWD)
 
 # Default rules for deployment.
 qnx: target.path = /tmp/$${TARGET}/bin

+ 93 - 3
View/die-bonder-ui/Src/RewriteControl/Controls/JReLineEdit.cpp

@@ -1,5 +1,9 @@
 #include "JReLineEdit.h"
 #include "../SpeedAdjPage.h"
+#include <QGroupBox>
+#include <QComboBox>
+#include <QCheckBox>
+#include <qDebug>
 
 JReLineEdit::JReLineEdit(QWidget* parent /*= nullptr*/)
     : QLineEdit(parent) 
@@ -11,14 +15,100 @@ void JReLineEdit::upDataValLine(const ST_DEF_VAL _val)
     m_stSavedefVal = _val;
 }
 
+void JReLineEdit::CheckVal()
+{
+    // 获取按钮所在的父窗口
+    QWidget* parentWindow = this->window();
+
+    QList<QGroupBox*> pListBox = parentWindow->findChildren<QGroupBox*>();
+    QList<QComboBox*> pListQComboBox = parentWindow->findChildren<QComboBox*>();
+    // 遍历所有QLineEdit
+    foreach(QGroupBox * p, pListBox)
+    {
+        if (p->objectName() == "axisGroupBox")
+        {
+            // 获取所有子控件
+            QList<QWidget*> children = p->findChildren<QWidget*>();
+
+            std::vector<ns_module::MODULE_COORD_MOVE> vecPos;
+            int nNum = 0;
+            // 总共没几个
+            ns_module::MODULE_COORD_MOVE axisPos = {};
+            foreach(QWidget * child, children) 
+            {
+                if (child->metaObject()->className() == "QCheckBox")
+                {
+                    QCheckBox* checkBox = qobject_cast<QCheckBox*>(child);
+                    if (checkBox) 
+                    {
+                        // 转换成功,可以安全使用 checkBox
+                        if (checkBox->isChecked())
+                        {
+                            nNum += 1;
+                            if (checkBox->objectName() == "forceCheckBox")
+                            {
+                                
+                            }
+                            else if (checkBox->objectName() == "forceCheckBox")
+                            {
+
+                            }
+                            else if (checkBox->objectName() == "forceCheckBox")
+                            {
+
+                            }
+                            else if (checkBox->objectName() == "forceCheckBox")
+                            {
+
+                            }
+                            break;
+                        }
+                    }
+                    else 
+                    {
+                        // 转换失败,widget 不是 QCheckBox 类型
+                        //qDebug() << "该 widget 不是 QCheckBox";
+                    }
+                }
+
+                // 表示是另一个控件
+                if (nNum == 1)
+                {
+                    QCheckBox* checkBox = qobject_cast<QCheckBox*>(child);
+                    
+                    axisPos.pos = checkBox->text().toDouble();
+                    vecPos.push_back(axisPos);
+                    nNum = 0;
+                }
+                
+                //qDebug() << "name :" << child->objectName()
+                //    << " type::" << child->metaObject()->className();
+            }
+            break;
+        }
+    }
+
+    // 获取选中
+    foreach(QComboBox* p, pListQComboBox)
+    {
+        if (p->objectName() == "modeComboBox")
+        {
+            m_stSavedefVal.strMode = p->currentText();
+        }
+    }
+
+    SpeedAdjPage* pNew = new SpeedAdjPage();
+    pNew->updateDefVal(m_stSavedefVal);
+    pNew->show();
+}
+
 void JReLineEdit::mousePressEvent(QMouseEvent* event)
 {
     if (event->button() == Qt::LeftButton) 
     {
-        SpeedAdjPage* pNew = new SpeedAdjPage(this);        
-        pNew->updateDefVal(m_stSavedefVal);
-        pNew->show();
+        CheckVal();
     }
+
     QLineEdit::mousePressEvent(event);
 }
 

+ 4 - 0
View/die-bonder-ui/Src/RewriteControl/Controls/JReLineEdit.h

@@ -26,6 +26,10 @@ public:
     /**更新值
      */
     void upDataValLine(const ST_DEF_VAL _val);
+
+    /**修改控件值
+     */
+    void CheckVal();
 protected:
     void mousePressEvent(QMouseEvent* event) override;
 

+ 42 - 5
View/die-bonder-ui/Src/RewriteControl/SpeedAdjPage.cpp

@@ -1,11 +1,14 @@
 #include "SpeedAdjPage.h"
 #include "ui_SpeedAdjPage.h"
+#include <QMouseEvent>
 
 SpeedAdjPage::SpeedAdjPage(QWidget *parent)
     : QMainWindow(parent)
     , ui(new Ui::SpeedAdjPage)
 {
     ui->setupUi(this);
+
+    Init();
 }
 
 SpeedAdjPage::~SpeedAdjPage()
@@ -19,16 +22,50 @@ void SpeedAdjPage::updateDefVal(const ST_DEF_VAL& val)
     strTip += val.strMode;
     strTip += tr("Axis:(","轴:(");
 
-    for (int i = 0; i < val.listStrAxis.size(); i++)
+    for (auto&a: val.vecPos)
     {
-        strTip += ","; // 组成(x,y,z)
-        strTip += val.listStrAxis[i];
+        strTip += a.AxisType.c_str();
         strTip += ":";
-        QString s = QString::number(val.listDoVal[i], 'f', 2);
+        QString s = QString::number(a.pos, 'f', 2);
     }
     strTip += ")";
 
-
     ui->speedTitleLabel->setText(strTip);
 
 }
+
+void SpeedAdjPage::Init()
+{
+    setWindowFlag(Qt::FramelessWindowHint);
+    setFocusPolicy(Qt::StrongFocus);
+
+
+    // 设置默认值
+    ui->widget_1->SetSpeedVal(1);
+    ui->widget_100->SetSpeedVal(100);
+    ui->widget_1000->SetSpeedVal(1000);
+    ui->widget_10000->SetSpeedVal(1000);
+}
+
+void SpeedAdjPage::focusOutEvent(QFocusEvent* event)
+{
+    this->close();
+}
+
+void SpeedAdjPage::mousePressEvent(QMouseEvent* event)
+{
+    if (event->button() == Qt::LeftButton)
+    {
+        m_mousePressPosition = event->globalPos();
+        m_windowPosition = this->frameGeometry().topLeft();
+    }
+}
+
+void SpeedAdjPage::mouseMoveEvent(QMouseEvent* event)
+{
+    if (event->buttons() & Qt::LeftButton)
+    {
+        QPoint delta = event->globalPos() - m_mousePressPosition;
+        this->move(m_windowPosition + delta);
+    }
+}

+ 14 - 2
View/die-bonder-ui/Src/RewriteControl/SpeedAdjPage.h

@@ -2,12 +2,13 @@
 #define SPEEDADJPAGE_H
 
 #include <QMainWindow>
+#include <CViewInterface.h>
+#include <QTimer>
 
 struct ST_DEF_VAL
 {
     QString         strMode; 
-    QList<double>   listDoVal;    //存在多组
-    QList<QString>  listStrAxis; // 存在多组
+    std::vector<ns_module::MODULE_COORD_MOVE> vecPos;
 };
 
 namespace Ui {
@@ -25,8 +26,19 @@ public:
     /**更新默认值
      */
     void updateDefVal(const ST_DEF_VAL& val);
+private:
+    void Init();
+
+protected:
+    void focusOutEvent(QFocusEvent* event) override;
+    void mousePressEvent(QMouseEvent* event) override;
+    void mouseMoveEvent(QMouseEvent* event) override;
 private:
     Ui::SpeedAdjPage *ui;
+
+private:
+    QPoint m_mousePressPosition;
+    QPoint m_windowPosition;
 };
 
 #endif // SPEEDADJPAGE_H

+ 38 - 29
View/die-bonder-ui/Src/RewriteControl/SpeedAdjPage.ui

@@ -6,47 +6,56 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>467</width>
-    <height>346</height>
+    <width>529</width>
+    <height>509</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>MainWindow</string>
   </property>
   <widget class="QWidget" name="centralwidget">
-   <widget class="QWidget" name="gridLayoutWidget">
+   <widget class="QLabel" name="speedTitleLabel">
+    <property name="geometry">
+     <rect>
+      <x>11</x>
+      <y>11</y>
+      <width>511</width>
+      <height>91</height>
+     </rect>
+    </property>
+    <property name="font">
+     <font>
+      <pointsize>16</pointsize>
+     </font>
+    </property>
+    <property name="text">
+     <string>当前速度:100000</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignCenter</set>
+    </property>
+   </widget>
+   <widget class="QWidget" name="">
     <property name="geometry">
      <rect>
       <x>10</x>
-      <y>10</y>
-      <width>451</width>
-      <height>331</height>
+      <y>100</y>
+      <width>511</width>
+      <height>401</height>
      </rect>
     </property>
-    <layout class="QGridLayout" name="gridLayout">
-     <property name="spacing">
-      <number>0</number>
-     </property>
-     <item row="1" column="0" colspan="3">
-      <widget class="SpeedAdjWnd" name="speed1" native="true"/>
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <item>
+      <widget class="SpeedAdjWnd" name="widget_1" native="true"/>
+     </item>
+     <item>
+      <widget class="SpeedAdjWnd" name="widget_100" native="true"/>
      </item>
-     <item row="0" column="0" colspan="3">
-      <widget class="QLabel" name="speedTitleLabel">
-       <property name="font">
-        <font>
-         <pointsize>16</pointsize>
-        </font>
-       </property>
-       <property name="text">
-        <string>当前速度:100000</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignCenter</set>
-       </property>
-      </widget>
+     <item>
+      <widget class="SpeedAdjWnd" name="widget_1000" native="true"/>
      </item>
-     <item row="2" column="0" colspan="3">
-      <widget class="SpeedAdjWnd" name="speed100" native="true"/>
+     <item>
+      <widget class="SpeedAdjWnd" name="widget_10000" native="true"/>
      </item>
     </layout>
    </widget>
@@ -56,7 +65,7 @@
   <customwidget>
    <class>SpeedAdjWnd</class>
    <extends>QWidget</extends>
-   <header>SpeedAdjWnd.h</header>
+   <header>Src/RewriteControl/SpeedAdjWnd.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>

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

@@ -2,7 +2,7 @@
 #include "ui_SpeedAdjWnd.h"
 
 SpeedAdjWnd::SpeedAdjWnd(QWidget *parent)
-    : QMainWindow(parent)
+    : QWidget(parent)
     , ui(new Ui::SpeedAdjWnd)
 {
     ui->setupUi(this);
@@ -12,3 +12,8 @@ SpeedAdjWnd::~SpeedAdjWnd()
 {
     delete ui;
 }
+
+void SpeedAdjWnd::SetSpeedVal(int nVal)
+{
+    ui->speedLabel->setText(QString::number(nVal));
+}

+ 3 - 2
View/die-bonder-ui/Src/RewriteControl/SpeedAdjWnd.h

@@ -1,13 +1,13 @@
 #ifndef SPEEDADJWND_H
 #define SPEEDADJWND_H
 
-#include <QMainWindow>
+#include <QWidget>
 
 namespace Ui {
 class SpeedAdjWnd;
 }
 
-class SpeedAdjWnd : public QMainWindow
+class SpeedAdjWnd : public QWidget
 {
     Q_OBJECT
 
@@ -15,6 +15,7 @@ public:
     explicit SpeedAdjWnd(QWidget *parent = nullptr);
     ~SpeedAdjWnd();
 
+    void SetSpeedVal(int nVal);
 private:
     Ui::SpeedAdjWnd *ui;
 };

+ 58 - 12
View/die-bonder-ui/Src/RewriteControl/SpeedAdjWnd.ui

@@ -1,34 +1,61 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>SpeedAdjWnd</class>
- <widget class="QMainWindow" name="SpeedAdjWnd">
+ <widget class="QWidget" name="SpeedAdjWnd">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>429</width>
-    <height>51</height>
+    <width>510</width>
+    <height>68</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>MainWindow</string>
   </property>
-  <widget class="QWidget" name="centralwidget">
-   <widget class="QWidget" name="">
+  <widget class="QWidget" name="centralwidget" native="true">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>509</width>
+     <height>108</height>
+    </rect>
+   </property>
+   <widget class="QWidget" name="layoutWidget">
     <property name="geometry">
      <rect>
       <x>1</x>
       <y>10</y>
-      <width>421</width>
-      <height>37</height>
+      <width>508</width>
+      <height>51</height>
      </rect>
     </property>
     <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
      <item>
-      <widget class="QLabel" name="speedLabel_1">
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeType">
+        <enum>QSizePolicy::Fixed</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>30</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QLabel" name="speedLabel">
        <property name="minimumSize">
         <size>
-         <width>88</width>
+         <width>113</width>
          <height>0</height>
         </size>
        </property>
@@ -46,7 +73,7 @@
       </widget>
      </item>
      <item>
-      <widget class="QPushButton" name="speedSubBut_1">
+      <widget class="QPushButton" name="speedSubBut">
        <property name="font">
         <font>
          <pointsize>16</pointsize>
@@ -58,16 +85,19 @@
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="lineEdit">
+      <widget class="QLineEdit" name="speedLineEdit">
        <property name="font">
         <font>
          <pointsize>16</pointsize>
         </font>
        </property>
+       <property name="alignment">
+        <set>Qt::AlignCenter</set>
+       </property>
       </widget>
      </item>
      <item>
-      <widget class="QPushButton" name="speedAddBut_1">
+      <widget class="QPushButton" name="speedAddBut">
        <property name="font">
         <font>
          <pointsize>16</pointsize>
@@ -78,6 +108,22 @@
        </property>
       </widget>
      </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeType">
+        <enum>QSizePolicy::Fixed</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>89</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
     </layout>
    </widget>
   </widget>