(QT学习笔记):QListWidget、QTreeWidget、 QTableWidget的基本使用
发布日期:2021-05-07 15:20:02 浏览次数:19 分类:精选文章

本文共 2878 字,大约阅读时间需要 9 分钟。

QListWidget、QTreeWidget和QTableWidgetItem在Qt中是常用的控件,用于展示和管理各种类型的数据。以下是对这些控件的详细说明,结合实际代码示例,帮助开发者更好地理解和使用它们。

1. QListWidget控件

QListWidget 是一个多选列表框控件,允许用户在应用程序中选择一个或多个项目。它通过QListWidgetItem来管理每个列表项,可以用来添加、编辑和移除项目。

创建项目并添加到控件中:

#include 
QListWidget *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则用于表格中的数据展示。通过合理使用这些控件,可以为应用程序设计出直观且用户友好的界面。

上一篇:CString解析[转]
下一篇:(QT学习笔记):按钮组中的常用控件

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月25日 22时14分22秒