前言
本博文主要是对 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++要点概要,如有需要可以进行阅读!
使用内联函数的时候要注意:
内敛函数
使用内联函数的时候要注意:
- 递归函数不能定义为内联函数。
- 内联函数一般适合于不存在 while 和 switch 等复杂的结构且只有 1~5 条语句的小函数上,否则编译系统将该函数视为普通函数。
- 内联函数只能先定义后使用, 否则编译系统也会把它认为是普通函数。
- 对内联函数不能进行异常的接口声明。