2023-12-05 Qt学习总结5_QListWidget列表框_QTableWidget表格控件_QTreeWidget树形控件


点击 <C 语言编程核心突破> 快速C语言入门



前言

要解决问题: 学习qt最核心知识, 多一个都不学.


十五 QListWidget列表框

QListWidget是Qt中的一个重要控件,它可以用于显示一列相关的项目,并允许用户通过单击选择项目。

QListWidget可以以多种模式(例如列表视图或图标视图)显示项目,并可以自定义每个项目的外观和数据。

常用函数:

  1. addItem() 向列表框中添加一个新项目;

  2. count() 返回列表框中项目的数量;

  3. currentItem() 返回当前选中的项目;

  4. currentRow() 返回当前选中项目的行号;

  5. setCurrentItem() 设置当前选中的项目;

  6. setCurrentRow() 设置当前选中项目的行号;

  7. item() 返回指定行号的项目;

  8. itemAt() 返回指定坐标的项目;

  9. takeItem() 移除指定行号的项目;

  10. 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中的表格。

它可以用来显示、编辑和操作一组数据,可以手动添加、删除和修改单元格内容。

常用函数:

  1. setRowCount(int rows) 设置表格的行数。

  2. setColumnCount(int columns) 设置表格的列数。

  3. setItem(int row, int column, QTableWidgetItem* item) 设置单元格的内容,rowcolumn是行列索引,itemQTableWidgetItem类型的指针。

  4. item(int row, int column) 获取给定行列位置的单元格的内容。

  5. selectedItems() 返回所有被选中的单元格。

  6. currentRow() 返回当前选中单元格的行号。

  7. currentColumn() 返回当前选中单元格的列号。

  8. setHorizontalHeaderItem(int column, QTableWidgetItem* item) 设置水平表头的内容,itemQTableWidgetItem类型的指针。

  9. setVerticalHeaderItem(int row, QTableWidgetItem* item) 设置垂直表头的内容,itemQTableWidgetItem类型的指针。

  10. setEditTriggers(QAbstractItemView::EditTrigger triggers) 设置表格中哪些操作触发编辑单元格,EditTrigger是一个枚举类型。

  11. setSelectionMode(QAbstractItemView::SelectionMode mode) 设置表格选择模式,SelectionMode是一个枚举类型。

  12. itemSelectionChanged() 当用户选中新的单元格时,触发此信号。

  13. cellClicked(int row, int column) 单元格被点击时触发此信号。

  14. clear() 清除所有单元格内容。

  15. setSortingEnabled(bool enable) 启用或禁用表格的排序功能。

  16. sortItems(int column, Qt::SortOrder order) 根据指定列的内容对表格进行排序。

  17. horizontalHeaderItem(int column) 返回指定列的水平表头项。

  18. 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++函数:

  1. setHeaderLabels() 设置树形控件的列标签

  2. setColumnCount() 设置列数

  3. setColumnWidth() 设置列宽

  4. setSortingEnabled() 启用或禁用排序

  5. setCurrentItem() 设置当前项

  6. currentItem() 获取当前项

  7. topLevelItem() 获取顶层项

  8. takeTopLevelItem() 移除顶层项

  9. addTopLevelItem() 添加顶层项

  10. clear() 清除所有项

  11. 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语言入门


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不停感叹的老林_<C 语言编程核心突破>

不打赏的人, 看完也学不会.

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值