QTableWidget继承自QTableView。QSqlTableModel能与QTableView绑定,但不能于QTableWidget绑定。
QSqlTableModel *model = new QSqlTableModel;
model->setTable("employee");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
model->removeColumn(0); // don't show the ID
model->setHeaderData(0, Qt::Horizontal, tr("Name"));
model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
QTableView *view = new QTableView;
view->setModel(model);
view->show();
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。
QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,正个表格都需要用逐个单元格构建起来。
具体区别表格
区别点
|
QTableView
|
QTableWidget
|
继承关系
|
|
QTableWidget继承自QTableView
|
使用数据模型setModel
|
可以使用setModel设置数据模型
|
setModel是私有函数,不难使用该函数设置数据模型
|
显示复选框setCheckState
|
没有函数实现复选框
|
QTableWidgetItem类中的setCheckState(Qt::Checked);可以设置复选框
|
与QSqlTableModel绑定
|
QTableView能与QSqlTableModel绑定
|
QtableWidget不能与QSqlTableModel绑定
|
View与Model绑定注意事项
但视图与模型绑定时,模型必须使用new来创建。否则视图不能随着模型的改变而改变。
Eorror错误的写法
QStandardItemModel model(4,2);
model.setHeaderData(0, Qt::Horizontal, tr("Label"));
model.setHeaderData(1, Qt::Horizontal, tr("Quantity"));
ui.tableView->setModel(&model);
for (int row = 0; row < 4; ++row) {
for (int column = 0; column < 2; ++column) {
QModelIndex index = model.index(row, column, QModelIndex());
model.setData(index, QVariant((row+1) * (column+1)));
}
}
Right 正确的写法
QStandardItemModel *model;
model = new QStandardItemModel(4,2);
ui.tableView->setModel(model);
model->setHeaderData(0, Qt::Horizontal, tr("Label"));
model->setHeaderData(1, Qt::Horizontal, tr("Quantity"));
for (int row = 0; row < 4; ++row) {
for (int column = 0; column < 2; ++column) {
QModelIndex index = model->index(row, column, QModelIndex());
model->setData(index, QVariant((row+1) * (column+1)));
}
}
分享到:
相关推荐
首先,我们需要理解`QTableWidget`和`QTableView`的区别。`QTableWidget`是基于`QWidget`的,它提供了完整的表格功能,包括数据编辑、行/列添加删除等,操作起来较为直观但性能较低。而`QTableView`是基于`...
在Qt库中,QTableWidget和QTableView是用于创建和展示表格数据的两种重要组件。在处理大量数据时,为了提高用户体验,我们通常会引入分页功能,以便用户可以逐页浏览,而不是一次性加载所有数据。本文将深入探讨如何...
用在嵌入式QT或者安卓QT,判断手指滑动方向,来实现手指滑动浏览,并显示自定义滑动条,滑动条可以支持上色,包含两个QtableWidget和QtableView示例,都可以用,文章链接:https://www.cnblogs.com/lifexy/p/14111572.html
在Qt库中,`QTableWidget`和`QTableView`是两种用于显示表格数据的控件,它们在处理和展示二维数据集时非常有用。在实际应用中,有时我们需要将这些表格的内容打印出来,以便于分析或记录。本文将详细探讨如何在Qt...
在PyQt5中,`QTableWidget`和`QTableView`是用于展示表格数据的两种控件。它们都提供了丰富的功能,包括自定义列、行操作以及数据交互。本篇文章将详细探讨如何在`QTableWidget`或`QTableView`的表头中添加复选框,...
在QT编程中,`QTableWidget` 和 `QTableView` 是两种常用的用于显示表格数据的控件。它们都属于Qt的`QtWidgets`模块,但各自有着不同的特性和使用场景。今天我们将深入探讨如何实现标题中提及的几个关键功能:自定义...
#### 一、QTableWidget与QTableView的区别 QTableWidget作为Qt框架中的一个重要组件,主要用于展示二维表格数据,其功能类似于其他编程语言中的DataGrid控件,如VC或C#中的对应组件。QTableWidget与QTableView同属...
在Qt框架中,`QTableView`和`QTableWidget`是两种常用的用于显示二维数据的控件。在一些复杂的用户界面设计中,我们可能需要对表头进行自定义,例如添加复选框或下拉框,以提供更丰富的交互功能。在本篇中,我们将...
`QTableWidget`继承自`QTableView`,并提供了更丰富的接口来创建和编辑表格。在表头(header)上设置筛选功能,可以方便用户快速查找和操作特定数据。 步骤一:创建`QTableWidget` 在`main.cpp`或`widget.cpp`中,...
QT QTableView QTableWidget 复杂表头(多行表头) 、(冻结、固定特定的行),具体效果看博客: https://blog.csdn.net/xiezhongyuan07/article/details/82857631
5. **同步视图与模型**:最后,由于列的顺序已经改变,需要更新视图以反映这些变化。这可以通过调用`header->resizeSections`和`header->model()->layoutChanged()`来实现。 ```cpp header->resizeSections...
5. **优化性能**: 为了进一步提升性能,可以开启QTableWidget的虚拟模式(QTableView::setViewportSize()和QTableView::setRowHeight())。在虚拟模式下,QTableWidget仅绘制可视区域内的单元格,而非整个表格,从而...
在处理大量数据时,特别是在数据分析领域,`QTableView`与Pandas的数据操作相结合,可以提供直观且高效的数据查看和交互方式。本文将详细介绍如何在`QTableView`中实现快捷键选择和复制功能。 首先,我们需要理解`...
QTableWidget是QTableView和QAbstractItemView的子类,它包含了完整的数据模型、视图和编辑器。在QTableWidget中,你可以直接添加、删除和编辑单元格内容,无需自己创建数据模型。每个单元格可以关联一个数据项,行...
Qt GUI图形图像开发之Qt表格控件QTableView简单使用方法及QTableView与QTableWidget区别 Qt GUI图形图像开发中,QTableView是Qt中用来把数据集以表格形式提供给用户的一个控件。QTableView类实现表格视图,...
接下来,我们需要创建一个`QAbstractTableModel`的子类,以便提供数据并处理与`QTableView`的交互。在这个模型中,我们需要重写`flags()`方法,为需要显示复选框的列返回`Qt::ItemIsUserCheckable`标志,并且在`data...
在IT行业中,`QTableView`是Qt库中的一个关键组件,用于展示表格数据。它提供了灵活的视图来显示和操作二维数据模型。本篇我们将深入探讨如何在`QTableView`中实现切换折叠展开图标的功能,这对于处理层级结构的数据...
要在`QTableView`的单元格中插入按钮,我们需要自定义`QTableWidgetItem`,并覆盖其`paintEvent()`方法,绘制出按钮的外观。然后,我们可以设置按钮的信号和槽,以便在点击时触发相应的行为。 2. **复选框集成**:...
解决qtablewidget加载大量数据卡顿的问题
在Qt编程中,QTableView是用于显示表格数据的控件,常见于数据密集型的应用程序。当处理大型数据集时,冻结行和列可以提高用户的交互体验,让他们更容易浏览和理解表格内容。QTableView默认并不支持直接冻结行列,但...