我想显示悬停的QTreeWidgetItem
的工具提示。但是,在我的情况下,获取工具提示并不是一个非常快的过程,因此我不想为每个项目调用setTooltip()
。我希望根据需要,在某些事件或信号上做到这一点。最简单的方法是什么?显示QTreeWidgetItem的工具提示,当它没有为每个项目调用setTooltip()时进行悬停
回答
我已经找到了最好的解决办法是继承QTreeWidgetItem
,覆盖virtual QVariant data(int column, int role) const;
并返回一个提示该项目时data
被调用Qt::ToolTipRole
。
我认为如果你迁移到QTreeView/Model模式,应该更容易实现你想要的。
化QAbstractItemModel有提示作用的:Qt :: ToolTipRole
你可以继承一个模型来重新实现
QVariant QAbstractItemModel::data (const QModelIndex & index, int role = Qt::DisplayRole) const [pure virtual
方法。
所以,当收到一个Qt :: TooltipRole时,它会从内部缓存中计算/恢复。
请注意,由于QTreeWidget继承自QTreeView,因此可以为您分配自定义模型。但它会混合苹果和桔子 – Trompa
我从来没有使用'QTreeView',它似乎过于复杂没有很好的理由(假设我从来没有做过一些Widget不可能做到的事情)。有没有办法通过'QTreeWidget'实现这个功能? –
是否有可能重新实现'QtreeWidget :: mouseEvent()'来获得'QHoverEvent',计算哪个项目鼠标结束并显示工具提示? –
- 1. 当鼠标悬停在该行上时,如何在datagridview行中显示每个项目的工具提示
- 2. 悬停时不显示工具提示
- 3. 悬停在svg圈显示每个元素的工具提示
- 4. 显示没有悬停事件的jQuery UI工具提示
- 5. Intellij IDE工具提示没有显示悬停的描述
- 6. 当其悬停时显示工具提示内容
- 7. 悬停工具提示显示图像
- 8. 工具提示没有显示在悬停
- 9. 显示Tipsy工具提示没有悬停?
- 10. TreeNode鼠标悬停工具提示没有显示
- 11. 为标签的一部分显示工具提示时,悬停
- 12. 显示行提示悬停
- 13. 显示工具提示,当鼠标悬停在对象unity3d
- 14. 悬停时的工具提示位置
- 15. IKImageBrowserView:如何显示每个项目的工具提示?
- 16. 当在图像上悬停时显示使用jquery的工具提示
- 17. Chart.js条形图:显示标签悬停时的工具提示
- 18. C#DataGridView在鼠标悬停的每一行显示工具提示文本
- 19. 悬停在SVG多边形上时不显示工具提示
- 20. 悬停时,工具提示显示图像?
- 21. 将鼠标悬停在CPTPlotSymbol上时显示工具提示
- 22. 如何在SVG元素悬停时显示工具提示div
- 23. ImageMapster - 在鼠标悬停时未显示工具提示
- 24. 仅在悬停时显示工具提示
- 25. 如何在悬停时显示工具提示?
- 26. 限制工具提示显示时悬停字只
- 27. 弹出窗口悬停时未显示(工具提示)
- 28. JQuery工具提示自定义悬停项目以显示在图像上方
- 29. 鼠标悬停显示像jQuery工具提示一个div
- 30. 当工具提示显示时,“实时”更新小工具的工具提示
大声笑,所以,基本上,我说什么,但没有改变模型/视图。对不起,不知道如何没有意识到它必须是一个数据方法的小部件项目:S – Trompa
@Trompa:是的,没有模型的所有:) –
无论如何,你应该尝试它;)。使用QStandardItemModel,您将使用与WidgetItems非常相似的QStandardItems,并且可以解耦。 – Trompa