QTreeWidget信号和曹,获取当前点击的节点信息,做出相应的操作
ps :ui界面的TreeWidget控件被重写的QTreeWidget类给提升了。
1. 重新的QTreeWidget头文件
#pragma once #include <QtWidgets/QTreeWidget> #include <QtWidgets/QTreeWidgetItem> class TreeWidgetParent : public QTreeWidget { //Q_OBJECT public: TreeWidgetParent(QWidget *_parent = nullptr); ~TreeWidgetParent(); public: void testFunction(); QTreeWidgetItem* item1; QTreeWidgetItem* item2; QTreeWidgetItem* item3; QTreeWidgetItem* item4; };
2. 重新的QTreeWidgetc源文件
#include "TreeWidgetParent.h" #include <QtWidgets/QTreeWidgetItem> #include <QString> TreeWidgetParent::TreeWidgetParent(QWidget *_parent) : QTreeWidget(_parent) { item1 = new QTreeWidgetItem(this); item2 = new QTreeWidgetItem(item1); item3 = new QTreeWidgetItem(this); item4 = new QTreeWidgetItem(item3); item1->setText(0, QString::fromLocal8Bit("第一个")); item1->setData(0, Qt::UserRole, "1"); item2->setText(0, QString::fromLocal8Bit("第二个")); item2->setData(0, Qt::UserRole, "2"); item3->setText(0, QString::fromLocal8Bit("第三个")); item3->setData(0, Qt::UserRole, "3"); item4->setText(0, QString::fromLocal8Bit("第四个")); item4->setData(0, Qt::UserRole, "4"); } TreeWidgetParent::~TreeWidgetParent() { } void TreeWidgetParent::testFunction() { }
3. MainWindow头文件
#pragma once #include <QtWidgets/QMainWindow> #include "ui_MyTteeWidget.h" class MyTteeWidget : public QMainWindow { Q_OBJECT public: MyTteeWidget(QWidget *parent = Q_NULLPTR); private slots: void getItem(QTreeWidgetItem*, int); //选中节点后,执行打印相应信息的操作 private: Ui::MyTteeWidgetClass ui; };
3. MainWindow源文件
#include "MyTteeWidget.h" #include <QDebug> MyTteeWidget::MyTteeWidget(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); ui.mytree->setHeaderLabel(QString::fromLocal8Bit("模块管理")); connect(ui.mytree, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(getItem(QTreeWidgetItem*, int))); } void MyTteeWidget::getItem(QTreeWidgetItem* _item, int xx) { //data(0, Qt::UserRole)关键所在,在创建节点的时候也会用到 data(0, Qt::UserRole) QString _data = _item->data(0, Qt::UserRole).toString(); // qDebug() << QString::fromLocal8Bit("_data = ") << _data << endl; QStringList _list = _data.split("-"); //qDebug() << "_list = " << _list << endl; if (_list[0].toInt()==2) { qDebug() << QString::fromLocal8Bit("打开音乐界面"); } else if (_list[0].toInt() == 4) { qDebug() << QString::fromLocal8Bit("打开视频界面"); } }
效果:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性