【QT】tableview使用


前言

本博文主要是对 tableview使用进行一个介绍,以及记录,方便后续使用时候可以直接加载。

QT

QT是一种跨平台的应用程序开发框架,最初由挪威的Trolltech公司开发,现在由Digia公司维护。QT使用C++编写,提供了一套丰富的类库和工具,使开发者能够快速而简单地创建高质量的桌面、移动和嵌入式应用程序。

  • 具有良好的可移植性和兼容性,支持许多不同的操作系统,包括Windows、macOS、Linux和嵌入式Linux等。它还提供了丰富的图形界面控件和布局管理器,使开发者能够轻松地创建各种用户界面。

  • 提供了强大的功能,如网络编程、数据库访问、多线程支持和国际化等。开发者可以利用这些功能快速构建功能强大的应用程序。

  • 具有良好的性能和效率,它采用了优化的底层架构和高效的事件处理机制,使得应用程序可以快速响应用户操作。

总的来说,QT是一个功能强大、易于使用和可移植的应用程序开发框架,它在许多不同的平台上都具有广泛的应用。无论是桌面、移动还是嵌入式开发,QT都可以提供丰富的功能和工具,帮助开发者构建高质量的应用程序。

tableview

在Qt中,TableView是一个用于显示和编辑表格数据的控件。它可以呈现数据模型中的数据,并允许用户对表格数据进行编辑和操作。

  • 使用一个数据模型来存储和管理表格数据。常用的数据模型是QAbstractItemModel的子类,比如QStandardItemModel、QSqlTableModel等。这些数据模型提供了一种将数据组织成表格形式的方式,并且可以在TableView中显示和编辑。

  • 可以显示多列和多行的数据,并且可以根据需要自动调整列宽和行高。它还支持对表头进行排序和筛选,以及拖放操作来重新排列表格中的数据。

  • 支持多种选择模式,包括单选、多选和扩展选择等。用户可以使用鼠标或键盘来选择和操作表格中的数据。

  • 除了显示数据,TableView还提供了一些交互功能,比如上下文菜单、右键菜单、双击编辑等。开发者可以通过自定义委托和编辑器来定制这些交互行为。

总之,TableView是Qt中用于显示和编辑表格数据的强大控件,它提供了丰富的功能和灵活的定制选项,可以满足各种表格数据展示和编辑的需求。

实例

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QStandardItem"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //提供了用于存储自定义数据的通用模型
        QStandardItemModel *model = new QStandardItemModel(13,2);
        model->setHeaderData(0,Qt::Horizontal,tr("参数名"));
        model->setHeaderData(1,Qt::Horizontal,tr("参数值"));


        QStringList dataName;
        dataName <<"系统工作状态"
                 <<"通讯站号"
                 <<"通讯波特率"
                 <<"烟感状态1"
                 <<"烟感状态2"
                 <<"水浸状态1"
                 <<"水浸状态2"
                 <<"前门状态"
                 <<"后门状态"
                 <<"人体感应状态1"
                 <<"人体感应状态2"
                 <<"输入9状态"
                 <<"输入10状态";
        QStringList Value;
        Value    <<"0"
                 <<"0"
                 <<"115200"
                 <<"1"
                 <<"1"
                 <<"1"
                 <<"0"
                 <<"1"
                 <<"1"
                 <<"1"
                 <<"1"
                 <<"0"
                 <<"0";

        //循环插入数据
        for(int row=0;row<13;row++)
        {
            model->insertRows(row,1); //插入一行
            model->setData(model->index(row,0), dataName.at(row)); //插入第一列 插入一个1000-2000的随机数
            model->setData(model->index(row,1), Value.at(row));

            //设置为居中
            model->item(row,0)->setTextAlignment(Qt::AlignCenter);
            model->item(row,1)->setTextAlignment(Qt::AlignCenter);
        }

        ui->tableView->horizontalHeader()->setVisible(true);//显示或隐藏表头
        ui->tableView->verticalHeader()->setVisible(false);//显示或隐藏序列行

        ui->tableView->setAutoScroll(true);//自动滚动条
        //ui->tableView->resizeColumnsToContents(); //根据内容调整大小
        ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//根据容器调整大小
        ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//只读
        ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选中模式为选中行
        ui->tableView->setSelectionMode( QAbstractItemView::SingleSelection); //设置选中单行
        ui->tableView->setModel(model); //使用

}

MainWindow::~MainWindow()
{
    delete ui;
}


额外补充

tableview使用部分就先到这!接下来,是一些个人平时整理的c++要点概要,如有需要可以进行阅读

使用内联函数的时候要注意:

在这里插入图片描述

内敛函数

使用内联函数的时候要注意:

  1. 递归函数不能定义为内联函数。
  2. 内联函数一般适合于不存在 while 和 switch 等复杂的结构且只有 1~5 条语句的小函数上,否则编译系统将该函数视为普通函数。
  3. 内联函数只能先定义后使用, 否则编译系统也会把它认为是普通函数。
  4. 对内联函数不能进行异常的接口声明。
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

傻傻虎虎

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值