点击 <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语言入门