问题标签 [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.
python - 单击项目视图的空白区域时清除选择
我用 做了一个树形结构QTreeWidget
,效果很好。但我有一个问题。通常,对于树形结构,如果我想取消选择全部,我单击树形小部件的空白区域。但QTreeWidget
似乎不支持这一点(或者我不知道如何)。
子分类或其他方法可以解决问题吗?确定单击空白区域似乎是解决方案的关键,但我找不到信号或任何东西。
qt - 如何在 QAbstractItemView 中获取可见 QModelIndex 列表
有什么方法可以获取当前可见项目的列表QAbstractItemView
吗?并且,如果可能的话,接收有关更改此列表的任何通知。
Upd:我问QAbstractItemView
的QTreeView
是非简单结构,而不是QTableView
.
Upd2:我正在使用复选框实现树视图模型。我想要下一个行为(检查/取消检查相同):
- 如果选中其中一个复选框 - 则必须选中所有子项
- 如果所有子复选框都被选中 - 那么父复选框也应该被选中。对于父母的父母也是如此,依此类推......
检查状态由外部数据源监控/修改,因此我需要一种机制来更新所有更改的子/父。dataChanged
信号对我来说是不够的,因为构建所有更改QModelIndex
以进行更新的列表非常广泛。而且根本没有必要,因为所有新数据都将从QAbstractItemModel::data
.
我发现下一个肮脏的黑客来更新所有项目:emit dataChanged( QModelIndex(), QModelIndex() );
但它没有记录无效索引。
所以,我需要一种方法来强制所有可见项目用新数据重新绘制它们的内容。
qt - 带复选框的 QComboBox
我正在创建带有复选框的 QComboBox。如何防止鼠标单击时视图折叠?我希望能够设置复选框,但是每次单击项目时- QComboBox 的下拉菜单都会折叠。
注意:目前我正在调试 Qt 源代码并寻找解决方法......
qt - 在 QTreeView 中捕捉项目创建时刻以设置自定义小部件
我有从 QAbstractItemModel 继承的自定义模型和从 QAbstractItemView 继承的自定义视图。模型是对组织为树的数据的包装。当模型更改时,它会发出必要的信号来通知视图有关更改。视图具有默认项目委托。
现在我想为视图中的每个项目创建一个自定义小部件,并使用 QAbstractItemView::setIndexWidget() 进行设置。我怎样才能捕捉和处理视图中的每个项目创建来做到这一点?
qt - QTableView 在一行/列中显示一维数据。如何二维显示?
假设我有一个一维 QStandardItemModel 和一个 QTableView 实例:
这显示了第一列中的数据,但我想以这样的二维方式显示它:
此外,用户应该能够选择数据,这意味着自定义 QStyledItemDelegate 可能不是实现这一点的方法。
所以需要创建一个自定义的 QAbstractItemView,不幸的是,我认为文档有点缺乏。帮助?
qt - QComboBox 下拉项边距
我想QComboBox
为下拉项目设置边距。这是它现在的样子:
我想要这样的东西:
我试过了
但它不起作用。
你能帮我解决这个问题吗?
c++ - 如何在 QAbstractItemView 的子类中显示小部件?
我想自定义显示数据模型的内容,即使用小部件显示模型的每一行。
我已经子类QAbstractItemView
化并尝试通过创建布局来显示小部件,将其分配给视口,然后向其中添加项目。我已经在适当的插槽 ( reset()
, rowsInserted
) 中执行了小部件创建,但最终没有显示任何内容,尽管布局中有项目。
如何确保我的小部件显示在视口中?必须setIndexWidget()
改为使用它们吗?
qt - QListView 空白
我有一个QListView
里面有一些物品。我想知道所呈现内容的边界框。这是一个插图:
如您所见,ListView(整个黑色区域)的几何形状与内容的几何形状不匹配。有很多未使用的空白(或者说,黑色空间)。
我想知道几何减去那个空白。我在插图中用透明的黄色条纹表示了这一点。这就是我想知道的地区。
有没有办法把它从QListView
or even中取出来QAbstractItemView
?
qt - 即使在失去焦点后也强制在 QAbstractItemView 中显示当前索引
我有一个QAbstractItemView
说QListView
设置selectionMode
为的实例Qt::NoSelection
。当我激活小部件时,我可以看到当前索引突出显示。但是,当我关注另一个小部件时,当前索引QListView
不再突出显示。无论哪个小部件具有焦点,我都需要始终突出显示当前索引。
qt - QAbstractItemView::setIndexWidget 作为编辑器
是否有任何特定理由不使用 QAbstractItemView::setIndexWidget 作为 QTreeView 中的编辑器?
我在使用 QStyledItemDelegate 和 setItemDelegateForColumn 时遇到了麻烦,数据未显示在编辑器中,复选框未替换 QAbstractItemModel.data(索引,角色)中的复选框。
文档说不要使用它,但没有说为什么。