QTableView ------ Model-View-Control(MVC)架构(4)
来源:互联网 发布:设备元数据出现问题 编辑:程序博客网 时间:2024/06/04 08:43
QTableView也是Qt的模型/视图(Model/View)架构中的一个组成部分,它提供了一个模型/视图框架的表格视图的默认实现。它常常配合QAbstractTableModel数据模型使用,可以用表格的形式显示出二维表格模型中的数据。
有必要说一下QTableView和QListView的区别。后者在Qt里一般只能显示单列数据(如果需要一些设置才能显示多列的话,此处实用为主,不是理论研究,所以未深究),而QTableView本身就是用于显示多列数据的。所以要根据自己的工程实际情况选择合适的工具。
外观
表格的垂直表头用verticalHeader()参数获得,水平表头用horizontalHeader()获得。每行的高度:rowHeight(),每列的宽度:columnWidth()。两个方向的表头都可以用hide()函数来隐藏。比如:
model=new SearchModel(this); tableView=new QTableView; tableView->setModel(model); tableView->verticalHeader()->hide(); tableView->horizontalHeader()->hide();
表头隐藏前:
表头隐藏后:
如果要去掉表格中间的线条,是由showGrid这个属性来决定的,选择修改改属性,去掉网格线条:
tableView->setShowGrid(false);
去掉后的效果:
上面的图标都还很小,原先用的QTableWidgetItem。现在数据条目采纳的是完全自定义的SearchItem,尺寸大概是100*60,比较大,那么默认情况下,QTableView的Cell就容纳不下了,条目都挤在一起,见下图:
要设置QTableView的单元格尺寸,可以使用QHeaderView::ResizeSection(),也可以使用setColumnWidth(), setRowHeight()。两种方法的效果是一样的。以下代码中被注释掉的部分和其上面的几行代码具有相同的效果:
tableView->setColumnWidth(0,100); tableView->setColumnWidth(1,100); tableView->setRowHeight(0,60); tableView->setRowHeight(1,60); tableView->setRowHeight(2,60);// tableView->verticalHeader()->resizeSection(0,60);// tableView->verticalHeader()->resizeSection(1,60);// tableView->verticalHeader()->resizeSection(2,60);// tableView->horizontalHeader()->resizeSection(0,100);// tableView->horizontalHeader()->resizeSection(1,100);
以上都是逐行、逐列地设置,比较麻烦。如果要整体设置,可以用resizeColumnsToContents(),和resizeRowsToContents()。
tableView->resizeColumnsToContents(); tableView->resizeRowsToContents();
- QTableView ------ Model-View-Control(MVC)架构(4)
- QListView ------ Model-View-Control(MVC)架构(1)
- QAbstractTableModel ------ Model-View-Control(MVC)架构(3)
- MVC(Model-View-Control)
- 各种模型的比较 ------ Model-View-Control(MVC)架构(2)
- 自定义SearchItem类 ------ Model-View-Control(MVC)架构(5)
- 自定义模型SearchModel ------ Model-View-Control(MVC)架构(7)
- 自定义模型SearchModel ------ Model-View-Control(MVC)架构(8)
- 自定义模型SearchModel ------ Model-View-Control(MVC)架构(9)
- MVC(Model-View-Control)
- 关于MVC(Model-View-Control)模式
- Qt MVC View Model Control /Delegate
- 自定义委托(代理)SearchDelegate ------ Model-View-Control(MVC)架构(6)
- 用C#实现MVC(Model View Control)模式介绍
- 用C#实现MVC(Model View Control)模式介绍
- C#实现MVC(Model View Control)模式介绍
- 用C#实现MVC(Model View Control)模式介绍
- Introduction to Model View Control (MVC) Pattern using C#
- 黑马程序员 7K面试题 银行业务调度系统
- 映象回忆表2(接上并不断补充)
- wifidog安装以及自写wifidog认证服务器
- LeetCode刷题笔录Longest Consecutive Sequence
- LeetCode3.4 @ Add Binary D2F4
- QTableView ------ Model-View-Control(MVC)架构(4)
- 7.1 Search for a Range
- Anisotropic stretching
- Guassian Process in Face Localization
- Sobolev Gradient Descent
- LeetCode刷题笔录Unique Paths II
- makefile详解
- 山水蒙
- 水雷屯