问题标签 [qtreeview]
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.
qt - QGLWidget 上的上下文菜单问题
我对 QGLWidget 和 QTreeView 上的自定义上下文菜单有疑问。我将 QTreeview 和 QGLWidget 添加到带有拆分器的通用小部件中。我通过以下代码打开上下文菜单。
actions 是 QActions 的列表。
在 QGLWidget 上按下鼠标时,如果满足某些条件,鼠标光标会发生变化。右键单击打开上下文菜单后,如果在其中一个菜单项上按下鼠标,一切都很好。如果在上下文菜单的一项上没有发生鼠标按下,则上下文菜单关闭并且问题开始。问题是即使在按下鼠标时满足所有条件,鼠标光标也不会改变。我不确定 QWidget 是否在这里失去焦点。所以,我尝试在鼠标按下事件中设置焦点。但帮助不大。任何解决此问题的建议。
谢谢!
c++ - Qt QTreeView - 当条件不满足时恢复到以前的选择
在 QTreeView 选择更改时,如果不满足某个条件,我想恢复到以前的选择。
例如:
目前我没有看到直接的方法来做到这一点,因为QModelIndex
它没有提供任何关于之前选择的信息。
有没有人对实现这一点的最佳方法有任何建议?
qt - Qt 自定义模型需要做什么才能启用 drop?
我正在尝试在我连接到的自定义模型上启用 drop QTreeView
。
我做了以下事情:
- 确保在
QTreeView
- 在我的自定义模型
supportedDropActions
上实现return Qt::CopyAction | Qt::MoveAction
- 在我的自定义模型上实现
mimeType
以返回QStringList
带有 text/uri-list 的 - 在我的自定义模型上实施
dropMimeData
以处理掉落(如果发生)。
这就是我让它在QTreeWidget
.
我继续:
- 实现的标志
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled;
然而,当我运行我的应用程序并尝试将 Windows 中的文件拖到我QTreeView
的 .
我还需要做什么才能启用 Drop?
qt - Qt错误“持久模型索引损坏”为什么?
我的 Qt/面试应用程序有问题。我使用 QTreeView 来显示树数据。我基于 QAbstractItemModel 实现了我自己的模型。
在应用程序崩溃之前出现以下错误。添加新记录后经常发生这种情况。
您能否向我解释一下这个错误的含义。什么是 QPersistentModelIndex ?我没有在我的代码中使用 QPersistentModelIndex。
谢谢。
qt - QTreeView / QAbstractItemModel - 添加项目并使用 beginInsertRows
我正在基于 QAbstractItemModel 实现我的模型,并将它与 QTreeView 一起使用来显示分层数据。数据存储在 sqlite 表中。
我的问题是添加子节点时应该如何调用 beginInsertRows。假设我有一些父节点,它包含 10 个子节点。我想添加新的子节点(最后)。
我这样做是这样的:
currentNodesCount 包含值 10,这是该子节点中的行数。新节点将放置在第 11 个位置(从 0 开始计数的第 10 个)。
这个逻辑正确吗?
感谢帮助。
我也想知道使用 beginRemoveRows。
它是否正确:
currentRow 包含从 0 开始计数的已移除节点列表中的位置。
python - 以编程方式获取和设置 QTreeview 中的活动行 (PyQt)
有没有办法获取和更改 QTreeView(不是 QTreeWidget)中的活动行?所谓活动,是指具有焦点突出显示的行,而不是选定的行。在绘画事件中,我可以QStyle.State_HasFocus
用来获取活动行,但这似乎不适用于其他地方。
qt - QAbstractItemModel + QTreeView 什么会导致项目变得不可选择?
我正在尝试基于 QAbstractItemModel 创建自己的模型。它似乎工作正常。它通过了模型测试断言。
当我删除一行时,我遇到了这个奇怪的问题。删除操作正常。但随后其他行变得不可选择(不是全部)。你有没有遇到过这样的行为?
在哪些情况下 QTreeView 可以决定该行不能被选中?
有任何想法吗 ?如果需要,我可以提供整个模型实现。
编辑:作为替代方案,我正在寻找一个 100% 工作的 QAbstractItemModel + QtSql + QTreeView 实现的例子。模型应该提供添加和删除方法,并且必须通过模型测试。这也将回答我的问题:-)
编辑:下面是我的源代码。压缩一点使其更小
ps 我现在看到 parent() 实现中有一个错误。删除 nodeParams[*].row 中的行值后包含不正确的位置。您如何在不将整个树加载到内存的情况下解决此问题?
qt - Qt:使用 QtSql 实现 QAbstractItemModel 的示例(与 QTreeView 一起使用)
我正在寻找与 QTreeView 一起使用的 QAbstractItemModel 的示例实现。该模型应该从 QSqlQuery 加载数据,并且应该以“懒惰”的方式进行。换句话说,我只想加载打开的节点/父节点的记录。我想看看如何在这个模型中正确添加和删除记录。
我尝试自己实现这样的模型,但遇到了很多不同的错误,尤其是当我开始添加和删除行时。
如果你知道我在哪里可以找到这样的例子,我将不胜感激。
谢谢 :)
c++ - 如何使用 QSortFilterProxyModel 过滤仅显示子节点及其父节点的树模型?
我有一个从 QAbstractItemModel 派生的工作树模型,我希望使用 QSortFilterProxyModel 子类对其进行过滤,以仅显示某些条件的子节点。例如,我有以下树:
我想过滤这棵树,条件是节点的名称 == C1,并且只显示具有 C1 的节点及其子节点,如下所示:
我已经有一个重新实现了 filterAcceptsRow() 的子类,它可以部分做我想要的,但它仍然会显示 C1 节点的父节点和祖父节点:
我认为这是因为要考虑子节点,他们的父节点必须通过 filterAcceptsRow() 测试,对吗?我怎样才能实现 filterAcceptRows() 或其他方法,以便它可以做我所描述的?
我曾经在 qtcentre 和 qtforum 上问过这个问题,但没有得到任何有用的答复。我尝试使用 filterAcceptsRow() 中的 beginMoveRows 和 endMoveRows 直接移动 QSortFilterProxyModel 子类的索引,但这只是由于危险的 const_cast 而导致测试应用程序崩溃。
qt - QTreeView 绘制下降指示器
我需要在 QTreeView 中通过拖放实现行移动,并在行之间显示放置指示器。我想知道是否有一种方法可以覆盖指标绘图,因此它仅显示在行之间的所有层次结构(不是项目周围的矩形),该行必须与整行一样宽(而不是一列)。