在QT5.14使用QTableView控件入门示例

8 篇文章 0 订阅
8 篇文章 0 订阅

简介

QTableView类实现一个表视图,该视图显示模型中的项目。
此类用于提供以前由QTable类提供的标准表,但使用Qt的模型/视图体系结构提供的更灵活的方法。

QTableView类是Model / View类之一,并且是Qt 模型/视图框架的一部分。
QTableView实现了由QAbstractItemView类定义的接口,以允许其显示从QAbstractItemModel类派生的模型提供的数据。

导航

您可以通过使用鼠标单击某个单元格或使用箭头键来导航表中的单元格。由于QTableView 默认情况下启用tabKeyNavigation,因此您还可以单击Tab和Backtab在单元格之间移动。

视觉外观

该表具有可以使用verticalHeader()函数获得的垂直标题,以及可以通过horizontalHeader()函数获得的水平标题。可以使用rowHeight()找到表中每一行的高度;同样,可以使用columnWidth()找到列的宽度。由于这两个都是简单的小部件,因此您可以使用它们的hide()函数隐藏它们中的任何一个。

可以隐藏行和列,并使用hideRow(),hideColumn(),showRow()和showColumn()进行显示。可以使用selectRow()和selectColumn()来选择它们。该表将显示一个网格,具体取决于showGrid属性。

表格视图中显示的项目与其他项目视图中的项目一样,是使用标准委托渲染和编辑的。但是,对于某些任务,有时可以将小部件插入表中有时会很有用。使用setIndexWidget()函数为特定索引设置窗口小部件,然后使用indexWidget()进行检索。

默认情况下,表格中的单元格不会展开以填充可用空间。

您可以通过拉伸最后一个标题部分来使单元格填充可用空间。使用horizontalHeader()或verticalHeader()访问相关的标头,并设置标头的StretchLastSection属性。

要根据每列或每行的空间要求分配可用空间,请调用视图的resizeColumnsToContents()或resizeRowsToContents()函数。

坐标系

对于某些特殊形式的表,能够在行索引和列索引以及窗口小部件坐标之间进行转换非常有用。所述rowAt()函数提供的指定行的视图中的y坐标; 行索引可用于通过rowViewportPosition()获得相应的y坐标。所述columnAt()和columnViewportPosition()函数提供x坐标和列索引之间的等效转换操作。

简单示例

创建一个项目qtableview_demo1

在这里插入图片描述
在这里插入图片描述

设计窗体

在窗体中添加一个QTableView控件
在这里插入图片描述

修改代码mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QStandardItemModel>
#include <ctime>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //提供了用于存储自定义数据的通用模型
    QStandardItemModel *model = new QStandardItemModel(5,4);
    model->setHeaderData(0,Qt::Horizontal,tr("第一季度"));
    model->setHeaderData(1,Qt::Horizontal,tr("第二季度"));
    model->setHeaderData(2,Qt::Horizontal,tr("第三季度"));
    model->setHeaderData(3,Qt::Horizontal,tr("第四季度"));
    //循环插入数据
    for(int row=0;row<5;row++)
    {
        model->insertRows(row,1); //插入一行
        model->setData(model->index(row,0), qrand()%1000+1000); //插入第一列 插入一个1000-2000的随机数
        model->setData(model->index(row,1), qrand()%1000+1000);
        model->setData(model->index(row,2), qrand()%1000+1000);
        model->setData(model->index(row,3), qrand()%1000+1000);
    }

    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;
}

运行截图

在这里插入图片描述

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要下载Qt 5.14入门教程,首先需要访问Qt官方网站。在网站的官方下载页面上,可以找到Qt的各个版本和组件。 找到Qt 5.14版本,然后点击下载链接。根据你的操作系统,选择正确的安装包进行下载。Qt 5.14支持多个操作系统,包括Windows、macOS和Linux。 下载完成后,双击安装包文件,然后按照安装向导进行安装。在安装过程中,可以选择安装的组件,确保选择了Qt Creator和Qt Documentation等必要组件。 安装完成后,打开Qt Creator,这是Qt官方提供的集成开发环境(IDE),用于开发Qt应用程序。在Qt Creator中,可以创建新的Qt项目或打开已有的项目。 为了学习Qt入门教程,可以创建一个新的Qt应用程序项目。选择Qt Quick应用程序模板,并按照向导填写项目的基本信息,如项目名称和存储位置。 创建项目后,可以开始编写Qt代码。Qt 5.14具有强大的图形界面(GUI)和跨平台的能力,可以使用C++和Qt Quick/QML两种语言进行开发。根据教程的要求,可以选择相应的语言进行编码。 在学习教程的过程中,可以按照教程指导的步骤进行实践和学习。Qt官方网站提供了丰富的文档和示例代码,可以在需要时进行参考。 总结来说,要下载Qt 5.14入门教程,需要访问Qt官方网站下载适用于自己操作系统的安装包,然后通过安装向导进行安装。安装完成后,在Qt Creator中创建新的项目,然后按照教程的指导进行学习和实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值