#include "mainwindow.h" #include "ui_mainwindow.h" #include #include enum PageIdentifier {//下方函数记得添加识别界面 pageIDUnknown = 0, // 未知页面 pageID_tcp, // TCP 界面 pageID_set, // 其他界面(你可以根据需要添加更多枚举值) pageID_main, pageID_chart, pageID_model }; 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 if (item == "page_chart") { return pageID_chart; } else if (item == "page_model") { return pageID_model; } else { return pageIDUnknown; } } void MainWindow::tree_connect()//信号初始化 { 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); connect(&page_chart, &chart_file::treeItemClicked, this, &MainWindow::onTreeItemClicked); connect(&page_model, &model_select::treeItemClicked, this, &MainWindow::onTreeItemClicked); } 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(); tree_connect(); } 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 :" <showMaximized(); break; case pageID_tcp: page_tcp.showMaximized(); // 显示 TCP 界面 this->hide(); break; case pageID_set: page_set.showMaximized(); // 显示 set 界面 this->hide(); break; case pageID_chart: page_chart.setPointsNum(2); page_chart.showMaximized(); // 显示 chart 界面 this->hide(); break; case pageID_model: page_model.showMaximized(); // 显示 model_select 界面 this->hide(); break; default: // 处理其他情况或不作任何操作 break; } } //主体窗口功能 void MainWindow::on_btn_link_clicked() { page_tcp.showMaximized(); //隐藏当前窗口 this->hide(); } void MainWindow::on_btn_scope_clicked() { page_scope.showMaximized(); } void MainWindow::on_btn_set_clicked() { page_model.showMaximized(); // 显示 model_select 界面 this->hide(); } //快捷按键入口 void MainWindow::on_tbtn_link_clicked() { page_tcp.showMaximized(); //隐藏当前窗口 this->hide(); } void MainWindow::on_tbtn_set_clicked() { page_set.showMaximized(); this->hide(); } void MainWindow::on_tbtn_scope_clicked() { page_scope.showMaximized(); this->hide(); }