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`是两种常用的用于显示二维数据的控件。在一些复杂的用户界面设计中,我们可能需要对表头进行自定义,例如添加复选框或下拉框,以提供更丰富的交互功能。在本篇中,我们将...
QT QTableView QTableWidget 复杂表头(多行表头) 、(冻结、固定特定的行),具体效果看博客: https://blog.csdn.net/xiezhongyuan07/article/details/82857631
`QTableWidget`继承自`QTableView`,并提供了更丰富的接口来创建和编辑表格。在表头(header)上设置筛选功能,可以方便用户快速查找和操作特定数据。 步骤一:创建`QTableWidget` 在`main.cpp`或`widget.cpp`中,...
5. **同步视图与模型**:最后,由于列的顺序已经改变,需要更新视图以反映这些变化。这可以通过调用`header->resizeSections`和`header->model()->layoutChanged()`来实现。 ```cpp header->resizeSections...
在处理大量数据时,特别是在数据分析领域,`QTableView`与Pandas的数据操作相结合,可以提供直观且高效的数据查看和交互方式。本文将详细介绍如何在`QTableView`中实现快捷键选择和复制功能。 首先,我们需要理解`...
5. **优化性能**: 为了进一步提升性能,可以开启QTableWidget的虚拟模式(QTableView::setViewportSize()和QTableView::setRowHeight())。在虚拟模式下,QTableWidget仅绘制可视区域内的单元格,而非整个表格,从而...
QTableWidget是QTableView和QAbstractItemView的子类,它包含了完整的数据模型、视图和编辑器。在QTableWidget中,你可以直接添加、删除和编辑单元格内容,无需自己创建数据模型。每个单元格可以关联一个数据项,行...
Qt GUI图形图像开发之Qt表格控件QTableView简单使用方法及QTableView与QTableWidget区别 Qt GUI图形图像开发中,QTableView是Qt中用来把数据集以表格形式提供给用户的一个控件。QTableView类实现表格视图,...
要在`QTableView`的单元格中插入按钮,我们需要自定义`QTableWidgetItem`,并覆盖其`paintEvent()`方法,绘制出按钮的外观。然后,我们可以设置按钮的信号和槽,以便在点击时触发相应的行为。 2. **复选框集成**:...
在IT行业中,`QTableView`是Qt库中的一个关键组件,用于展示表格数据。它提供了灵活的视图来显示和操作二维数据模型。本篇我们将深入探讨如何在`QTableView`中实现切换折叠展开图标的功能,这对于处理层级结构的数据...
这可能涉及到设置行内元素(如QTableWidgetItem)的字体、字号等因素,以适应不同内容的行高。 3. **用户交互性**:尽管自动调整大小可以提高用户体验,但用户可能还需要手动调整。封装可能保留了原有的鼠标拖动...
当`QTableView`被放置在`QTableWidget`之上时,可以用来实现某些复杂交互,比如创建一个覆盖在`QTableWidget`上的下拉视图。这种技术通常用于模拟标准控件无法直接提供的行为,比如自定义下拉列表或者复杂的单元格...
在Qt库中,QTableWidget是一个非常常用的控件,用于展示二维数据,它提供了丰富的功能,包括编辑、排序和选择等。在这个特定的场景中,我们关注的是如何在用户鼠标划过某一行时,实现该行背景颜色以及字体边框的变化...