问题标签 [qabstractitemview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3238 浏览

python - 单击项目视图的空白区域时清除选择

我用 做了一个树形结构QTreeWidget,效果很好。但我有一个问题。通常,对于树形结构,如果我想取消选择全部,我单击树形小部件的空白区域。但QTreeWidget似乎不支持这一点(或者我不知道如何)。

子分类或其他方法可以解决问题吗?确定单击空白区域似乎是解决方案的关键,但我找不到信号或任何东西。

0 投票
5 回答
8387 浏览

qt - 如何在 QAbstractItemView 中获取可见 QModelIndex 列表

有什么方法可以获取当前可见项目的列表QAbstractItemView吗?并且,如果可能的话,接收有关更改此列表的任何通知。

Upd:我问QAbstractItemViewQTreeView是非简单结构,而不是QTableView.

Upd2:我正在使用复选框实现树视图模型。我想要下一个行为(检查/取消检查相同):

  • 如果选中其中一个复选框 - 则必须选中所有子项
  • 如果所有子复选框都被选中 - 那么父复选框也应该被选中。对于父母的父母也是如此,依此类推......

检查状态由外部数据源监控/修改,因此我需要一种机制来更新所有更改的子/父。dataChanged信号对我来说是不够的,因为构建所有更改QModelIndex以进行更新的列表非常广泛。而且根本没有必要,因为所有新数据都将从QAbstractItemModel::data.

我发现下一个肮脏的黑客来更新所有项目:emit dataChanged( QModelIndex(), QModelIndex() );但它没有记录无效索引。

所以,我需要一种方法来强制所有可见项目用新数据重新绘制它们的内容。

0 投票
1 回答
2305 浏览

qt - 带复选框的 QComboBox

我正在创建带有复选框的 QComboBox。如何防止鼠标单击时视图折叠?我希望能够设置复选框,但是每次单击项目时- QComboBox 的下拉菜单都会折叠。

注意:目前我正在调试 Qt 源代码并寻找解决方法......

0 投票
1 回答
409 浏览

qt - 在 QTreeView 中捕捉项目创建时刻以设置自定义小部件

我有从 QAbstractItemModel 继承的自定义模型和从 QAbstractItemView 继承的自定义视图。模型是对组织为树的数据的包装。当模型更改时,它会发出必要的信号来通知视图有关更改。视图具有默认项目委托。

现在我想为视图中的每个项目创建一个自定义小部件,并使用 QAbstractItemView::setIndexWidget() 进行设置。我怎样才能捕捉和处理视图中的每个项目创建来做到这一点?

0 投票
1 回答
789 浏览

qt - QTableView 在一行/列中显示一维数据。如何二维显示?

假设我有一个一维 QStandardItemModel 和一个 QTableView 实例:

这显示了第一列中的数据,但我想以这样的二维方式显示它:

此外,用户应该能够选择数据,这意味着自定义 QStyledItemDelegate 可能不是实现这一点的方法。

所以需要创建一个自定义的 QAbstractItemView,不幸的是,我认为文档有点缺乏。帮助?

0 投票
2 回答
8351 浏览

qt - QComboBox 下拉项边距

我想QComboBox为下拉项目设置边距。这是它现在的样子:

在此处输入图像描述

我想要这样的东西:

在此处输入图像描述

我试过了

但它不起作用。

你能帮我解决这个问题吗?

0 投票
0 回答
519 浏览

c++ - 如何在 QAbstractItemView 的子类中显示小部件?

我想自定义显示数据模型的内容,即使用小部件显示模型的每一行。

我已经子类QAbstractItemView化并尝试通过创建布局来显示小部件,将其分配给视口,然后向其中添加项目。我已经在适当的插槽 ( reset(), rowsInserted) 中执行了小部件创建,但最终没有显示任何内容,尽管布局中有项目。

如何确保我的小部件显示在视口中?必须setIndexWidget()改为使用它们吗?

0 投票
0 回答
100 浏览

qt - QListView 空白

我有一个QListView里面有一些物品。我想知道所呈现内容的边界框。这是一个插图:

插图

如您所见,ListView(整个黑色区域)的几何形状与内容的几何形状不匹配。有很多未使用的空白(或者说,黑色空间)。

我想知道几何减去那个空白。我在插图中用透明的黄色条纹表示了这一点。这就是我想知道的地区。

有没有办法把它从QListViewor even中取出来QAbstractItemView

0 投票
1 回答
465 浏览

qt - 即使在失去焦点后也强制在 QAbstractItemView 中显示当前索引

我有一个QAbstractItemViewQListView设置selectionMode为的实例Qt::NoSelection。当我激活小部件时,我可以看到当前索引突出显示。但是,当我关注另一个小部件时,当前索引QListView不再突出显示。无论哪个小部件具有焦点,我都需要始终突出显示当前索引。

0 投票
1 回答
414 浏览

qt - QAbstractItemView::setIndexWidget 作为编辑器

是否有任何特定理由不使用 QAbstractItemView::setIndexWidget 作为 QTreeView 中的编辑器?

我在使用 QStyledItemDelegate 和 setItemDelegateForColumn 时遇到了麻烦,数据未显示在编辑器中,复选框未替换 QAbstractItemModel.data(索引,角色)中的复选框。

文档说不要使用它,但没有说为什么。