2023-12-05 Qt学习总结5


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


相关推荐

  1. 5.14学习总结

    2023-12-11 11:12:04       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 11:12:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 11:12:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 11:12:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 11:12:04       18 阅读

热门阅读

  1. React学习笔记

    2023-12-11 11:12:04       36 阅读
  2. 线程组、线程切换、线程异常

    2023-12-11 11:12:04       44 阅读
  3. scheduleatfixedrate详解

    2023-12-11 11:12:04       39 阅读
  4. Presto集群安装部署

    2023-12-11 11:12:04       44 阅读
  5. springboot自定义cron定时任务执行

    2023-12-11 11:12:04       37 阅读
  6. 第三十一章 控制到 XML 模式的映射 - %ListOfDataTypes

    2023-12-11 11:12:04       23 阅读
  7. SAP ABAP 对象ALV的一些功能(ALV资料五)

    2023-12-11 11:12:04       29 阅读
  8. # C语言——预处理(#define,#if..)

    2023-12-11 11:12:04       28 阅读
  9. TS条件类型、断言及名义类型

    2023-12-11 11:12:04       36 阅读