QTreeWidget使用小案例
一、概述
使用QTreeWidget制作一个树形菜单。示例图:
二、代码示例
#include "TreeWidgetExampleWindow.h" TreeWidgetExampleWindow::TreeWidgetExampleWindow(QWidget* parent) : QWidget(parent) { this->setWindowTitle("TreeWidget组件"); QVBoxLayout* vLayout = new QVBoxLayout; //创建TreeWidget QTreeWidget* treeWidget = new QTreeWidget; treeWidget->setColumnCount(3);// 设置列数为 3 treeWidget->setHeaderLabels({ "LOL", "英雄","战力"}); // 设置列标签 treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽 // 创建根节点 QTreeWidgetItem* root = new QTreeWidgetItem(treeWidget); root->setText(0, "英雄联盟"); root->setData(2, Qt::UserRole, "root_data_info"); treeWidget->addTopLevelItem(root); // 创建子节点 1 QTreeWidgetItem* child1 = new QTreeWidgetItem(root);//说明child1是root的子节点 child1->setText(0, "德玛西亚"); QTreeWidgetItem* child1_sub = new QTreeWidgetItem(child1);//说明child1_sub是child1的子节点 child1_sub->setText(0, "德玛西亚之力"); child1->addChild(child1_sub);//添加子节点 //三级节点一级一级靠右边 child1_sub->setText(0, "名称"); child1_sub->setText(1, "德玛西亚"); child1_sub->setText(2, "战力2"); root->addChild(child1); // 创建子节点 2 QTreeWidgetItem* child2 = new QTreeWidgetItem(root);//说明child2是root的子节点 child2->setText(0, "诺克萨斯"); QTreeWidgetItem* child2_sub = new QTreeWidgetItem(child2);//说明child2_sub是child2的子节点 child2_sub->setText(0, "诺克萨斯之手"); child2->addChild(child2_sub); child2_sub->setText(0, "101"); root->addChild(child2); // 读取节点数据 QTreeWidgetItem* item = treeWidget->topLevelItem(0); if (item) { qDebug() << "Root name: " << item->text(0); qDebug() << "Root value: " << item->text(1); qDebug() << "Root data: " << item->data(2, Qt::UserRole).toString(); } vLayout->addWidget(treeWidget); this->setLayout(vLayout); } TreeWidgetExampleWindow::~TreeWidgetExampleWindow() { }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
2021-12-22 Qt创建一个按钮,点击按钮关闭窗口
2013-12-22 Java设置以及获取JavaBean私有属性进阶
2013-12-22 Java使用PropertyDescriptor获取实体类中私有属性的值,并给私有属性赋值