
(QT学习笔记):QListWidget、QTreeWidget、 QTableWidget的基本使用
发布日期:2021-05-07 15:20:02
浏览次数:19
分类:精选文章
本文共 2878 字,大约阅读时间需要 9 分钟。
QListWidget、QTreeWidget和QTableWidgetItem在Qt中是常用的控件,用于展示和管理各种类型的数据。以下是对这些控件的详细说明,结合实际代码示例,帮助开发者更好地理解和使用它们。
1. QListWidget控件
QListWidget 是一个多选列表框控件,允许用户在应用程序中选择一个或多个项目。它通过QListWidgetItem来管理每个列表项,可以用来添加、编辑和移除项目。
创建项目并添加到控件中:
#includeQListWidget *listWidget = new QListWidget(ui->mainWindow);QListWidgetItem *item = new QListWidgetItem("窗前明月光");listWidget->addItem(item);
设置居中对齐:
item->setTextAlignment(Qt::AlignHCenter);
一次性添加多行数据:
QStringList list;list << "窗前明月光" << "疑是地上霜" << "举头望明月" << "低头思故乡";listWidget->addItems(list);
注意事项: 如果需要动态修改项目的位置,可以通过QListWidget::insertItem
方法逐个添加,或者使用QListWidget::setItem
方法直接修改现有项目的位置。
2. QTreeWidget控件
QTreeWidget 是一个树形列表控件,适合展示层级结构的数据,如文件目录或应用程序的菜单选项。它通过QTreeWidgetItem来管理每个节点,可以用来创建和管理树形结构。
创建树形结构:
QTreeWidget *treeWidget = new QTreeWidget(ui->mainWindow);QTreeWidgetItem *liItem = new QTreeWidgetItem();QTreeWidgetItem *minItem = new QTreeWidgetItem();QTreeWidgetItem *zhiItem = new QTreeWidgetItem();// 设置头treeWidget->setHeaderLabels(QStringList() << "英雄" << "英雄简介");// 添加根节点treeWidget->addTopLevelItem(liItem);treeWidget->addTopLevelItem(minItem);treeWidget->addTopLevelItem(zhiItem);// 添加子节点QStringList heroL1, heroL2, heroM1, heroM2, heroZ1, heroZ2;heroL1 << "刚被猪" << "前排坦克,能在吸收伤害的同时造成可观的范围输出";heroL2 << "船长" << "前排坦克,能肉能输出能控场的全能英雄";heroM1 << "月骑" << "中排物理输出,可以使用分裂利刃攻击多个目标";heroM2 << "小鱼人" << "前排战士,擅长偷取敌人的属性来增强自身战力";heroZ1 << "死灵法师" << "前排法师坦克,魔法抗性较高,拥有治疗技能";heroZ2 << "巫医" << "后排辅助法师,可以使用奇特的巫术诅咒敌人与治疗队友";// 创建子节点QTreeWidgetItem *l1 = new QTreeWidgetItem(heroL1);QTreeWidgetItem *l2 = new QTreeWidgetItem(heroL2);QTreeWidgetItem *m1 = new QTreeWidgetItem(heroM1);QTreeWidgetItem *m2 = new QTreeWidgetItem(heroM2);QTreeWidgetItem *z1 = new QTreeWidgetItem(heroZ1);QTreeWidgetItem *z2 = new QTreeWidgetItem(heroZ2);liItem->addChild(l1);liItem->addChild(l2);minItem->addChild(m1);minItem->addChild(m2);zhiItem->addChild(z1);zhiItem->addChild(z2);
3. QTableWidgetItem控件
QTableWidgetItem 是一个表格中的单元格控件,用于在QTableWidget中显示数据。它可以用来展示文本、数字或其他类型的内容。
创建和添加表格:
QTableWidget *tableWidget = new QTableWidget(ui->mainWindow);tableWidget->setColumnCount(3); // 设置列数tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄"); // 设置水平表头tableWidget->setRowCount(5); // 设置行数QStringList nameList = {"亚瑟", "安琪拉", "妲己", "赵云", "孙悟空"};QStringList sexList = {"男", "女", "女", "男", "中立"};for (int i = 0; i < 5; ++i) { tableWidget->setItem(i, 0, new QTableWidgetItem(nameList[i])); tableWidget->setItem(i, 1, new QTableWidgetItem(sexList[i])); tableWidget->setItem(i, 2, new QTableWidgetItem(QString::number(i + 18)));}
动态添加数据:
// 添加图片或其他多媒体内容TableCell *cell = new TableCell(tableWidget);ui->tableWidget->setCellWidget(i, 2, cell);cell->setText("图片或多媒体内容");
总结
这些控件在Qt应用开发中非常有用,QListWidget适合展示选项或列表,QTreeWidget适合展示层级结构的数据,QTableWidgetItem则用于表格中的数据展示。通过合理使用这些控件,可以为应用程序设计出直观且用户友好的界面。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月25日 22时14分22秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java判断字符串是否为金额
2019-03-04
CodeCombat代码全记录(Python学习利器)--安息之云山峰(第四章)代码9
2019-03-04
某公司运维岗位笔试题8
2019-03-04
skyfans之每天一个Liunx命令系列之二:uptime
2019-03-04
Kubernetes十三--Pod定义文件内容详解
2019-03-04
3、69道Spring面试题及答案
2019-03-04
普歌- LRF-(简单易懂)笔记本电脑USB接口案例 接口多态(向下转型)
2019-03-04
Java中如何构建树结构
2019-03-04
若依启动流程
2019-03-04
解决vue部署到nginx后刷新404
2019-03-04
解决eclipse字体背景变红或者变绿的问题
2019-03-04
一个面试大牛的经历
2019-03-04
扫雷小游戏——简单易懂
2019-03-04
软件架构-zookeeper快速入门
2019-03-04
软件架构-zookeeper场景和实现
2019-03-04
「初级篇」跟我一起学docker(四)--容器的基本操作
2019-03-04
22 岁毕业做程序员的「普通」人,50 岁时的人生轨迹是怎样的?
2019-03-04
『高级篇』docker之安全认证kubernetes命令熟悉(40)
2019-03-04
scala上界与下界、协变与逆变
2019-03-04
java稀疏数组
2019-03-04