#include "mainwindow.h" #include "ui_mainwindow.h" #include #include enum PageIdentifier {//下方函数记得添加识别界面 pageIDUnknown = 0, // 未知页面 pageID_tcp, // TCP 界面 pageID_set, // 其他界面(你可以根据需要添加更多枚举值) pageID_main }; PageIdentifier stringToPageIdentifier(const QString& item) { if (item == "page_tcp") { return pageID_tcp; } else if (item == "page_set") { return pageID_set; } else if (item == "page_main") { return pageID_main; } else { return pageIDUnknown; } } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) // 调用父类的构造函数 , ui(new Ui::MainWindow) , page_tcp(this, &page_scope) // 初始化 tcp 时传入 MainWindow 和 page_scope , page_scope(this) // 初始化 scope , page_set(this) // 初始化 set 时传入 MainWindow 和 page_scope { ui->setupUi(this); ui->btn_set->setToolTip("连接"); QStandardItemModel* model = treeModel.tree_set(); page_set.setTreeModel(&treeModel); ui->tree_set->setModel(model); ui->tree_set->expandAll(); connect(ui->tree_set, &QTreeView::clicked, this, &MainWindow::onTreeItemClicked); connect(&page_set, &set::treeItemClicked, this, &MainWindow::onTreeItemClicked); connect(&page_scope, &scope::treeItemClicked, this, &MainWindow::onTreeItemClicked); } MainWindow::~MainWindow() { delete ui; } void MainWindow::onTreeItemClicked(const QModelIndex &index) { // 显示index数据形式 qDebug() << "Index row:" << index.row(); // 打印行号 qDebug() << "Index column:" << index.column(); // 打印列号 qDebug() << "Index data:" << index.data().toString(); // 打印该项的数据(文本) // 获取并打印用户定义的标识符 QString item = index.data(Qt::UserRole).toString(); PageIdentifier pageId = stringToPageIdentifier(item); qDebug() << "index :" <show(); break; case pageID_tcp: page_tcp.show(); // 显示 TCP 界面 break; case pageID_set: page_set.show(); // 显示 TCP 界面 break; default: // 处理其他情况或不作任何操作 break; } } //主体窗口功能 void MainWindow::on_btn_link_clicked() { page_tcp.show(); } void MainWindow::on_btn_scope_clicked() { page_scope.show(); } void MainWindow::on_btn_set_clicked() { page_set.show(); } //快捷按键入口 void MainWindow::on_tbtn_link_clicked() { page_tcp.show(); } void MainWindow::on_tbtn_set_clicked() { page_set.show(); } void MainWindow::on_tbtn_scope_clicked() { page_scope.show(); }