qtableview相关内容

如何根据内容调整 QTableView 高度?

在我的布局中,我动态生成的 QTableViews 似乎被调整为只显示一行.我想让表格视图的容器有一个滚动条而不是单个表格视图,它应该显示完整的内容. 解决方案 @savolai非常感谢您的代码,它对我来说效果很好.我只是做额外的检查: void verticalResizeTableViewToContents(QTableView *tableView){int rowTotalHe ..
发布时间:2021-09-15 19:16:27 其他开发

QTableView 如何突出显示鼠标悬停的整行?

选择行为设置为选择行,但仅突出显示悬停的单元格.有没有办法突出显示整行? 解决方案 有两种方式.. 1) 您可以使用委托来绘制行背景... 您需要将行设置为在委托中突出显示,并以此为基础,做突出显示. 2) 捕捉当前行的信号.迭代该行中的项目和为每个项目设置背景. 希望对你们有用. ..
发布时间:2021-06-30 18:45:17 其他开发

删除 QTableView 的垂直网格线

我有一个 QTableView 如下所示: 我想从表格中删除所有垂直线.我尝试将 gridline-color 属性设置为与 background-color 等效,但它删除了所有网格线. 我希望保留水平网格线,并移除垂直网格线.我怎样才能做到这一点? 解决方案 delegate.h class QLineDelegate : public QStyledItemDelega ..
发布时间:2021-06-30 18:45:14 其他开发

TableView 的标题

我到处浏览,但找不到有关如何在 Qt Creator 中为 TableView 创建某种类型的标题的任何信息. 我希望它看起来像这样: 解决方案 简短回答:QTCreator 中没有设置可用于定义表视图的标题... 长答案:那是一个带有自定义模型的 TableView.然后你需要定义一个继承 QAbstractTableModel 的新模型 然后在 FooModel 头文 ..
发布时间:2021-06-30 18:45:10 其他开发

调整 QMainWindow 大小时,QTableView 不会扩展/减少

我有一个 QMainWindow. 在 QMainWindow 内,我有一个中央小部件. 对于中央小部件,我有一个 QVBoxLayout. 对于这个 QVBoxLayout,我添加了 3 个小部件.一个是带有一些标签的小部件,它有一个 QGridLayout.另一个是水平线. 第三个是QTableView.问题是,当我尝试扩展 QMainWwindow 时,无论我设置(或 ..
发布时间:2021-06-30 18:45:07 其他开发

QSQLTableModel 继承者和 QTableView

我为使用 qml 编写了 QSQLTableModel 继承器,它运行良好.我也需要将它与 QTableView 一起使用,数据显示,但我无法修改它 - 当我编辑一切正常时,但当我离开现场时所有更改都会下降(我知道 editStrategy,但问题发生得更早).我想虚函数有问题,但我无法理解是什么.如果我使用相同的参数创建 QSqlTableModel,一切都很好.有人知道我该如何解决这个问题?我 ..
发布时间:2021-06-30 18:45:04 其他开发

在 QTreeView 中锁定/冻结列的好方法是什么

我正在尝试在 QTreeView 中实现冻结(当网格的其余部分水平滚动时不滚动的那些)列 - 就像在 Excel 中一样. 我试图找到一些原生的 Qt 方法来冻结列,但我唯一能找到的是在 QAbstractScrollArea::setViewportMargins 中的一个侧面提及,如 this 帖子.因此,我遵循了帖子答案中的建议,并在顶部覆盖了另一个查看相同模型的 QTreeView. ..
发布时间:2021-06-30 18:45:02 其他开发

QTableView - 限制所选项目的数量?

问题在标题中.没有函数 QTableView::set_Max_Number_SelectedItems( int ). 当所选项目的数量为2时,我想禁用物品的选择. 谢谢 解决方案 您可以禁用选择: connect(ui->tableView->selectionModel(),&QItemSelectionModel::selectionChanged,[=]() {// ..
发布时间:2021-06-30 18:44:58 其他开发

QTableView 格式化数字

我已经创建了一个代表,我能够对齐和加粗表格上的数字.我想强制它们有两个小数位,例如 1.2 应该显示为 1.20.这是 delagete 的标题: #ifndef TOTALDELEGATE_H#define TOTALDELEGATE_H#include #include 类 TotalDelegate : 公共 QStyledItemDelegate{上市:TotalDelegate();v ..
发布时间:2021-06-30 18:44:55 其他开发

QLineEdit 光标在 textChanged() 或 commitData() 后移动到结尾

我有一个 QTableView,其中一列使用 QLineEdit 作为其编辑器委托,其他列需要在用户键入 时动态更新QLineEdit(例如,其中一列包含在 QLineEdit 中键入的文本的长度,它应该随着用户键入而更新,而不是等待他们按 Enter 提交). 我使用了这个代码:Qt:在编辑 QTableView 项目数据时发出信号,而不是在编辑完成后发出信号? 大多数情况下有效.它将 QLi ..
发布时间:2021-06-30 18:44:52 其他开发

如何使 restoreState() 和 saveState() 在 QTableView 类中正常工作?

首先,我想说,我的问题已经在这里讨论过,关于 SO,以及 这里是.但答案并不好... 所以,这是问题:我有一个 QTableView 类,带有一个简单的 model,与 tableView-> 连接;setModel(model); 方法.例如,我有 4-5 列.我启动了我的项目应用程序,并对列宽进行了一些更改.按退出后,我的项目应用程序将 tableView->horizo​​ntal ..
发布时间:2021-06-30 18:44:48 其他开发

Qt 模型/视图与标准小部件

我目前正在阅读 Qt 的模型/视图 教程,但是我仍然不确定是否应该在 Qt 程序中使用模型/视图或小部件: 我需要做一个记录器应用程序来监控模拟环境中的所有信息.基本场景可能是: 用户 1 对虚拟实体 B 说一些话(记录器应用程序获取用户 1 说的话并在表视图或列表视图中显示) 虚拟实体 B 向用户 1 回复一些内容(记录器应用程序获取用户 1 所说的话并将其添加到表视图或列表视图中 ..
发布时间:2021-06-30 18:44:46 其他开发

QTableView:dataChanged 事件清除正在编辑的单元格

使用 QTableView 和 QAbstractTableModel - 当模型为正在编辑的单元格发出 dataChanged 事件时,用户输入的字符串单元格中的内容(但未按 Enter 以“提交"编辑)被删除. 示例:单击一个单元格,键入“123",单元格仍处于编辑模式,等待更多文本,发出 dataChanged 并删除“123",在编辑模式下留下一个空单元格. 有谁知道如何阻止这 ..
发布时间:2021-06-30 18:44:43 其他开发

验证 QTableView 中的用户输入

我有一个 QTableView 并且我想验证用户输入.如果用户在 QTableView 的单元格中插入无效值,我想突出显示该单元格并禁用 QPushButton. 我怎样才能做到这一点?我可以使用 QValidator 吗? 解决方案 是的,你可以这样做,为此目的使用自定义 QItemDelegate(我使用了 QIntValidator 就像示例). 标题: #ifndef ..
发布时间:2021-06-30 18:44:40 其他开发

QTableView 禁用某些列的排序

我正在使用包含 10 列的 QtableView(qt5.9),并希望在用户单击这些列的标题时禁用对第 2 和第 3(仅部分)列的排序. 我使用 setsortingenabled 标志使我的 QtableView 允许排序 是否有任何我应该在点击标题时听到的信号,然后调用一些适当的方法或拒绝排序. 解决方案 一种更简单的方法(至少对我而言)是子类化过滤器代理并仅覆盖禁用列的排 ..
发布时间:2021-06-30 18:44:37 其他开发

我如何单独从 QTableView 和 QStandardItemModel 获取复选框项目?

似乎使用 model.setData(index, Qt::Checked,Qt::CheckStateRole) 不足以让复选框正常工作.有什么建议吗? 解决方案 我相信你需要继承 QStandardItemModel;覆盖标志方法并返回 Qt::ItemIsUserCheckable 以及带有复选框的列的其他标志.下面是一个例子: class TableModel : public ..
发布时间:2021-06-30 18:44:34 其他开发

QTableView 和 horizo​​ntalHeader()->restoreState()

我无法缩小这个错误的范围,但是我似乎有以下问题: saveState() 一个 horizo​​ntalHeader() 重启应用 修改模型,使其少一列 restoreState() 现在,由于某种原因,headerview 的状态完全混乱了.我无法显示或隐藏任何新列,也无法恢复合理的状态 我知道,这不是很具有描述性,但我希望其他人以前遇到过这个问题. 解决方案 对于 ..
发布时间:2021-06-30 18:44:32 其他开发

QTableView 并双击单元格

我正在开发一个测试用例编辑器.该编辑器包含 USART 一种发送和接收数据包格式.编辑器是一个表格视图. 发送和接收数据包的长度为 8 个字节,例如: 0x01 0x02 0x03 ... 0x08 它在我的第五和第六列中.现在,我希望此列中的单元格是只读的,但是当我双击这些列中的任何单元格时,会显示一个弹出窗口小部件.这个小部件将在文本编辑中包含八个框,用户可以在其中输入数据包格式(即 ..
发布时间:2021-06-30 18:44:29 其他开发

如何触发 QTableView 中项目的编辑模式?

我现在使用 QTableView 和 QStandardItemModel. 在 QTableView 中,如果双击一个单元格,该单元格将进入编辑模式,您可以编辑其内容. 现在遇到一个问题,我想通过代码(通过命令)触发一个项目的编辑模式,我该怎么办?我在 QTableView 或 QStandardItemModel 中找不到合适的函数或插槽.我是否需要发出任何信号才能进入编辑模式? ..
发布时间:2021-06-30 18:44:25 其他开发

PyQt:使用 QAbstractTableModel 向 QTableView 添加行

我是 Qt 编程的新手.我正在尝试制作一个简单的表格,可以通过单击按钮添加行.我可以很好地实现表格,但似乎无法将更新的数据显示在表格上.我相信我的问题源于这样一个事实,即我似乎无法使用按钮正确调用任何类型的“更改数据"方法.我在网上尝试了几种不同的解决方案,所有这些都导致了 4 岁的死胡同.到目前为止,我拥有的是基本结构,我只是不知道如何使用新数据更新表. 这是基本视图 我已经设置了一 ..
发布时间:2021-06-30 18:44:23 其他开发