点击 <C 语言编程核心突破> 快速C语言入门
前言
要解决问题: 学习qt最核心知识, 多一个都不学.
十五 QListWidget列表框
QListWidget
是Qt中的一个重要控件,它可以用于显示一列相关的项目,并允许用户通过单击选择项目。
QListWidget
可以以多种模式(例如列表视图或图标视图)显示项目,并可以自定义每个项目的外观和数据。
常用函数:
-
addItem()
向列表框中添加一个新项目; -
count()
返回列表框中项目的数量; -
currentItem()
返回当前选中的项目; -
currentRow()
返回当前选中项目的行号; -
setCurrentItem()
设置当前选中的项目; -
setCurrentRow()
设置当前选中项目的行号; -
item()
返回指定行号的项目; -
itemAt()
返回指定坐标的项目; -
takeItem()
移除指定行号的项目; -
clear()
清除所有项目。
拖拽一个ListWidget
双击, 进行编辑, 设置选框
添加PushButton
利用信号和槽机制, 进行处理
获取项目列表项目数量, 遍历列表, 统计勾选的数量, 输出信息.
void Widget::on_pushButton_clicked()
{
int count = ui->listWidget->count();
int res = 0;
for (int var = 0; var < count; ++var)
{
if (ui->listWidget->item(var)->checkState() == Qt::Checked)
{
res++;
}
}
QMessageBox::information(this, "提示",
QString("你太厉害了!\n任务共%1项\n你完成了%2项")
.arg(ui->listWidget->count())
.arg(res));
}
十六 QTableWidget表格控件
QTableWidget
是Qt中用于显示表格的控件,类似于Excel
中的表格。
它可以用来显示、编辑和操作一组数据,可以手动添加、删除和修改单元格内容。
常用函数:
-
setRowCount(int rows)
设置表格的行数。 -
setColumnCount(int columns)
设置表格的列数。 -
setItem(int row, int column, QTableWidgetItem* item)
设置单元格的内容,row
和column
是行列索引,item
是QTableWidgetItem
类型的指针。 -
item(int row, int column)
获取给定行列位置的单元格的内容。 -
selectedItems()
返回所有被选中的单元格。 -
currentRow()
返回当前选中单元格的行号。 -
currentColumn()
返回当前选中单元格的列号。 -
setHorizontalHeaderItem(int column, QTableWidgetItem* item)
设置水平表头的内容,item
是QTableWidgetItem
类型的指针。 -
setVerticalHeaderItem(int row, QTableWidgetItem* item)
设置垂直表头的内容,item
是QTableWidgetItem
类型的指针。 -
setEditTriggers(QAbstractItemView::EditTrigger triggers)
设置表格中哪些操作触发编辑单元格,EditTrigger
是一个枚举类型。 -
setSelectionMode(QAbstractItemView::SelectionMode mode)
设置表格选择模式,SelectionMod
e是一个枚举类型。 -
itemSelectionChanged()
当用户选中新的单元格时,触发此信号。 -
cellClicked(int row, int column)
单元格被点击时触发此信号。 -
clear()
清除所有单元格内容。 -
setSortingEnabled(bool enable)
启用或禁用表格的排序功能。 -
sortItems(int column, Qt::SortOrder order)
根据指定列的内容对表格进行排序。 -
horizontalHeaderItem(int column)
返回指定列的水平表头项。 -
verticalHeaderItem(int row)
返回指定行的垂直表头项。
拖拽生成一个Table Widget
,
双击设置行列, 项目内容
插入QButton
并使用信号和槽机制进行通信, 遍历表格, 统计选中人数, 并给出信息.
void Widget::on_pushButton_clicked()
{
int count = ui->tableWidget->rowCount();
int res = 0;
for (int var = 0; var < count; ++var)
{
if (ui->tableWidget->item(var, 0)->checkState() == Qt::Checked)
{
res++;
}
}
QMessageBox::information(
this, "提示",
QString("表格中共有%1个人, 有%2个人被选中").arg(count).arg(res));
}
十七 QTreeWidget树形控件
QTreeWidget
是Qt中提供的一个树形控件,用于展示具有分层结构数据的控件。
以下是一些常用的C++函数:
-
setHeaderLabels()
设置树形控件的列标签 -
setColumnCount()
设置列数 -
setColumnWidth()
设置列宽 -
setSortingEnabled()
启用或禁用排序 -
setCurrentItem()
设置当前项 -
currentItem()
获取当前项 -
topLevelItem()
获取顶层项 -
takeTopLevelItem()
移除顶层项 -
addTopLevelItem()
添加顶层项 -
clear()
清除所有项 -
selectedItems()
获取所有选择项
此外,还有许多其他的函数可以设置树形控件的样式、行为、数据等。
需要根据具体的需求进行选择和使用。
拖拽建立一个树:
建立一个PushButtton
, 利用信号和槽机制, 打印顶级条目数, 次级条目数, 被选中的次级条目数:
void Widget::on_pushButton_clicked()
{
int topCount = ui->treeWidget->topLevelItemCount();
qDebug() << "顶级条目数" << topCount;
int checkedCount = 0;
for (int var = 0; var < topCount; ++var)
{
int childcnt = ui->treeWidget->topLevelItem(var)->childCount();
qDebug() << "顶级条目" << var << "下条目数" << childcnt;
for (int varB = 0; varB < childcnt; ++varB)
{
if (ui->treeWidget->topLevelItem(var)->child(varB)->checkState(0) ==
Qt::Checked)
{
checkedCount++;
}
}
}
qDebug() << "被选择的次级条目共有" << checkedCount << "个";
}
总结
十五 QListWidget列表框
十六 QTableWidget表格控件
十七 QTreeWidget树形控件
点击 <C 语言编程核心突破> 快速C语言入门