QTableView是Qt中用来把数据集以表格形式提供给用户的一个控件,它与C++Builder中的DBGrid作用类似。坦白的说,DBGrid的使用要比QTableView更容易一些。但QTableView在使用麻烦的同时,也提供了更多的灵活性。

  软件环境: ubuntu

  最终效果图:

   

  一、添加表头:

  1. QStandardItemModel *model = new QStandardItemModel();
  2. model->setColumnCount(2);
  3. model->setHeaderData(0,Qt::Horizontal,QString::fromLocal8Bit("卡号"));
  4. model->setHeaderData(1,Qt::Horizontal,QString::fromLocal8Bit("姓名"));

复制代码

  二、设置表格属性:

  1. ui->tableView->setModel(model);
  2. //表头信息显示居左
  3. ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
  4. //设置列宽不可变
  5. ui->tableView->horizontalHeader()->setResizeMode(0,QHeaderView::Fixed);
  6. ui->tableView->horizontalHeader()->setResizeMode(1,QHeaderView::Fixed);
  7. ui->tableView->setColumnWidth(0,101);
  8. ui->tableView->setColumnWidth(1,102);

复制代码

  注:在进行表格设置时必须是“ui->tableView->setModel(model);”在前,属性具体设置在后,

  反之则设置不会生效。如上述代码所示。

  三、添加行(添加三行一样的信息):

  1. for(int i = 0; i < 3; i++)
  2. {
  3. model->setItem(i,0,new QStandardItem("2009441676"));
  4. //设置字符颜色
  5. model->item(i,0)->setForeground(QBrush(QColor(255, 0, 0)));
  6. //设置字符位置
  7. model->item(i,0)->setTextAlignment(Qt::AlignCenter);
  8. model->setItem(i,1,new QStandardItem(QString::fromLocal8Bit("哈哈")));
  9. }

复制代码

  四、删除行:

  1. //x是指定删除哪一行
  2. model->removeRow(x);
  3. //删除所有行
  4. model->removeRows(0,model->rowCount());

复制代码

   再举一个例子:

  在一个药品划价模块中有这样的操作流程:

  检索处方项目成功后,把该项目显示到QTableView里,把需要编辑的数量字段提供给用户输入,用户输入确认后,该项目留在列表中,然后开始下一项目检索录入。

  实现过程如下:

  录入的项目保留在临时表tmp中,界面上的QTableView取名为tbList,与tbList关联的Model取名为tb1。检索成功后,把检索结果插入到临时表中,把需要编辑的字段提供给用户。

  1. tb1=newQSqlTableModel(this,*dbR); //dbR是本应用中的数据源
  2. tb1->setTable("tmp"); //处方临时表

复制代码

  程序中需要显示的时候,

  1. tbList->setModel(NULL); //清除原先数据集
  2. tbList->setModel(tb1); //刷新显示

复制代码

  程序中需要提供编辑输入的时候

  1. QModelIndexmdidx=m_ui->tbList->model()->index(row,column); //获得需要编辑的单元格的位置
  2. m_ui->tbList->setFocus(); //把输入焦点交给tbList
  3. m_ui->tbList->setCurrentIndex(mdidx); //设定需要编辑的单元格
  4. m_ui->tbList->edit(mdidx); //开始编辑

复制代码

  有一个问题需要注意。向 QTableView 中添加记录时,字段一定要完整,不能有空白字段,否则结果无法保存。切记。

  如果需要对用户输入做限制,比如只能在指定的字段输入指定的数据类型,可以通过QItemDelegate来实现。

   贴一段代码,说明QTableView基本用法

  1. QStandardItemModel model;
  2. //设置大小
  3. model.setColumnCount(3); //列
  4. model.setRowCount(musicFound); //行
  5. //设置标题
  6. model.setHeaderData(0,Qt::Horizontal,"ID");
  7. //添加数据
  8. for(int j=0;j<row;j++)
  9. {
  10. //写id
  11. QStandardItem *itemID = new QStandardItem("hello");//QString::number(j)));
  12. model.setItem(j,0,itemID);
  13. }
  14. //选择这个model
  15. m_ui->tableView->setModel(&model);
  16. //隐藏左边那列
  17. m_ui->tableView->verticalHeader()->hide();
  18. //列宽
  19. m_ui->tableView->setColumnWidth(0,30);
  20. //整行选择
  21. m_ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);

FROM: http://www.ithao123.cn/content-104118.html

QTableView基本用法讲解,Qt表格控件的使用方法相关推荐

  1. qtabwidget设置表头_Qt GUI图形图像开发之QT表格控件QTableView,QTableWidget复杂表头(多行表头) 及冻结、固定特定的行的详细方法与实例...

    我们在开发过程中对于表格使用频率还是挺高的,使用QT框架开发时候我们使用QTableView或者QTableWidget创建表格. 其中表格分为 表格头与表格体: 对于简单地表格,我们可以设置表头来满 ...

  2. tablewidget 多行表头_Qt GUI图形图像开发之QT表格控件QTableView,QTableWidget复杂表头(多行表头) 及冻结、固定特定的行的详细方法与实例...

    我们在开发过程中对于表格使用频率还是挺高的,使用QT框架开发时候我们使用QTableView或者QTableWidget创建表格. 其中表格分为 表格头与表格体: 对于简单地表格,我们可以设置表头来满 ...

  3. Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例

    QT表格控件QTableView简介 ​ 表格视图控件QTableView,需要和QStandardItemModel, 配套使用,这套框架是基于MVC设计模式设计的,M(Model)是QStanda ...

  4. android组件用法说明,Android第三方控件PhotoView使用方法详解

    Android第三方控件PhotoView使用方法详解 发布时间:2020-10-21 15:06:09 来源:脚本之家 阅读:74 作者:zhaihaohao1 PhotoView的简介: 这是一个 ...

  5. PyQt5 技术篇-鼠标移动控件显示提示,Qt Designer控件提示设置方法。

    当你想用一些图标作为按钮时,为了让用户可以更清楚的知道按钮的功能,加个提示再好不过了. 如图:当我鼠标移动到第一个图标,会提示-"开始". 设置方法: self.toolButto ...

  6. Qt QTableWidget表格控件的用法(非常详细)

    Qt QTableWidget表格控件的用法(非常详细) QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给 ...

  7. QTableWidget表格控件的用法

    QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给用户.QTableWidget 的结构布局如图 1 所示. ...

  8. QTableWidget表格控件的用法(非常详细)

    QTableWidget表格控件的用法(非常详细) [1] QTableWidget表格控件的用法(非常详细) [2] QTableWidget详解 1.常用API设置 自动调整行高和列宽 设置表格内 ...

  9. 【QT开发笔记-基础篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget

    本节对应的视频讲解:B_站_链_接 QTableWidget 是 Qt 中的表格控件,可以行列的形式来展示数据 1. 属性和方法 QTableWidget 有很多属性和方法,完整的可查看帮助文档. 在 ...

最新文章

  1. 2022-2028年中国盲盒产业研究及前瞻分析报告
  2. Python内置函数之输入输出函数
  3. git--分支管理策略
  4. 【NOI 2011】阿狸的打字机
  5. SAP云平台cf push命令报错误码44的解决方法
  6. pgsql vs mysql查询_对比平台--SQL Server Vs PostgreSQL
  7. JavaScript——文档对象模型
  8. codeproject上发现的DataSet调试利器
  9. 【Kafka】kafka SSL close message 远程主机被迫关闭了一个连接
  10. azure blob_不同的Azure存储类型(文件,Blob,队列和表)
  11. 趣文:舌尖上的程序猿
  12. 黑马博客——详细步骤(十一)博客系统的前台展示页面
  13. 用c语言写易语言Linux库,C语言编写支持库教程
  14. nginx 使用配置解释
  15. 小程序功能(七)电子签名
  16. Python综合基础及机器学习面试题
  17. 结对项目:SudokuGame
  18. 一个极佳的编程语言练习项目
  19. 记录一个本地安装sonarqube的问题
  20. 魅族16sPro更新体验版Flyme8,手机桌面更丰富,新增逆光自拍模式

热门文章

  1. 从键盘输入一个四位数,输出该四位数的个位,十位,百位和千位数分别是什么。
  2. 关闭vscode链接检查,去掉VSCODE 编辑器的链接下划线
  3. processing制作动态山水背景
  4. 三极管工作原理--我见过最通俗讲法
  5. 三极管原理--我见过最通俗讲法
  6. Java代码审计手册(2)
  7. LaTex学习教程——插入图片及图片的引用
  8. 偷偷爆料下 955 不加班公司名单(2023 年最新版!)
  9. 511遇见易语言文本替换和子文本替换
  10. 基金申请-13:如何查论文的影响因子和SCI分区?