flower_linux 1 ماه پیش
والد
کامیت
d5adc99b76
3فایلهای تغییر یافته به همراه60 افزوده شده و 28 حذف شده
  1. 48 16
      .vscode/c_cpp_properties.json
  2. 0 6
      src/view_serial/serialtree.ui
  3. 12 6
      src/view_serial/viewserial.cpp

+ 48 - 16
.vscode/c_cpp_properties.json

@@ -1,17 +1,49 @@
 {
-    "configurations": [
-        {
-            "name": "Linux",
-            "includePath": [
-                "${workspaceFolder}/**",
-                "/home/dt/app/qt/6.9.2/gcc_64/include/**"
-            ],
-            "defines": [],
-            "compilerPath": "/usr/bin/gcc",
-            "cStandard": "c17",
-            "cppStandard": "gnu++17",
-            "intelliSenseMode": "linux-gcc-x64"
-        }
-    ],
-    "version": 4
-}
+  "configurations": [
+    {
+      "name": "Qt",
+      "compileCommands": "${workspaceFolder}/build/Desktop_Qt_6_9_2-Debug/.qtc_clangd/compile_commands.json",
+      "includePath": [
+        "${workspaceFolder}/**",
+        "${workspaceFolder}/src",
+        "${workspaceFolder}/build/Desktop_Qt_6_9_2-Debug/soft_bus_autogen/include",
+        "/home/dt/app/qt/6.9.2/gcc_64/include",
+        "/home/dt/app/qt/6.9.2/gcc_64/include/QtCore",
+        "/home/dt/app/qt/6.9.2/gcc_64/include/QtGui",
+        "/home/dt/app/qt/6.9.2/gcc_64/include/QtWidgets",
+        "/home/dt/app/qt/6.9.2/gcc_64/include/QtSerialPort",
+        "/home/dt/app/qt/6.9.2/gcc_64/include/QtCharts",
+        "/home/dt/app/qt/6.9.2/gcc_64/include/QtOpenGL",
+        "/home/dt/app/qt/6.9.2/gcc_64/include/QtOpenGLWidgets",
+        "/usr/include/c++/11",
+        "/usr/include/x86_64-linux-gnu/c++/11",
+        "/usr/include/c++/11/backward",
+        "/usr/lib/gcc/x86_64-linux-gnu/11/include",
+        "/usr/local/include",
+        "/usr/include/x86_64-linux-gnu",
+        "/usr/include"
+      ],
+      "defines": [
+        "QT_CORE_LIB",
+        "QT_GUI_LIB",
+        "QT_WIDGETS_LIB",
+        "QT_SERIALPORT_LIB",
+        "QT_CHARTS_LIB",
+        "QT_OPENGL_LIB",
+        "QT_OPENGLWIDGETS_LIB"
+      ],
+      "compilerPath": "/usr/bin/g++",
+      "cStandard": "c11",
+      "cppStandard": "c++20",
+      "intelliSenseMode": "linux-gcc-x64",
+      "browse": {
+        "path": [
+          "${workspaceFolder}",
+          "/home/dt/app/qt/6.9.2/gcc_64/include"
+        ],
+        "limitSymbolsToIncludedHeaders": false
+      }
+    }
+  ],
+  "version": 4
+}

+ 0 - 6
src/view_serial/serialtree.ui

@@ -10,12 +10,6 @@
     <height>653</height>
    </rect>
   </property>
-  <property name="maximumSize">
-   <size>
-    <width>200</width>
-    <height>16777215</height>
-   </size>
-  </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>

+ 12 - 6
src/view_serial/viewserial.cpp

@@ -1,6 +1,7 @@
 #include "viewserial.h"
 #include "ui_viewserial.h"
 #include "ui_serialtree.h"
+#include <QDebug>
 
 
 ViewSerial::ViewSerial(QWidget *parent)
@@ -21,10 +22,9 @@ ViewSerial::ViewSerial(QWidget *parent)
 
     // 创建树形视图部件
     QWidget* treeWidget = new QWidget();
-    QVBoxLayout *layout_tree = new QVBoxLayout(treeWidget);
-    layout_tree->setContentsMargins(0, 0, 0, 0); // 移除边距
-
     ui_tree->setupUi(treeWidget);
+    // 设置大小策略,让dock widget可以调整大小并铺满可用空间
+    treeWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
     // 将UI添加到停靠管理器
     this->addDockWidget(mainWidget, "主视图", ads::CenterDockWidgetArea);
     this->addDockWidget(treeWidget, "设备树", ads::LeftDockWidgetArea);
@@ -35,9 +35,11 @@ ViewSerial::ViewSerial(QWidget *parent)
 
     // 创建UI
     createUI();
-    m_serialManager->startDiscovery();
-    // 创建连接
+    // 先创建连接,再启动发现(这样信号才能被正确捕获)
     createConnections();
+    m_serialManager->startDiscovery();
+    // 立即更新一次设备列表
+    updateDeviceList();
 
 }
 
@@ -151,11 +153,15 @@ void ViewSerial::updateDeviceList()
     m_deviceModel->clear();
 
     // 添加串口设备
-    foreach (const QString &portName, m_serialManager->getAvailablePorts())
+    QStringList availablePorts = m_serialManager->getAvailablePorts();
+    qDebug() << "更新设备列表,找到" << availablePorts.size() << "个串口设备";
+    
+    foreach (const QString &portName, availablePorts)
     {
         QStandardItem *item = new QStandardItem("串口: " + portName);
         item->setData(portName, Qt::UserRole);
         m_deviceModel->appendRow(item);
+        qDebug() << "添加设备到列表:" << portName;
     }
 
     // 添加其他类型设备(CAN、以太网等)