在QTreeWidgetItem悬停时显示工具提示而不为每个项目调用setTooltip()

时间:2013-08-07 08:54:43

标签: qt tooltip qtreewidget qtreewidgetitem

我想显示悬停的QTreeWidgetItem工具提示。但是,在我的情况下,获取工具提示并不是一个非常快速的过程,因此我不想为每个项目调用setTooltip()。我希望在某些事件或信号上按需进行。最简单的方法是什么?

2 个答案:

答案 0 :(得分:3)

我发现的最佳解决方案是继承QTreeWidgetItem,覆盖virtual QVariant data(int column, int role) const;并在为data调用Qt::ToolTipRole时返回此项目的工具提示。

答案 1 :(得分:0)

我认为如果迁移到QTreeView / Model模式,应该更容易实现所需。

QAbstractItemModel具有工具提示的作用:Qt :: ToolTipRole

您可以将模型子类化以重新实现

QVariant QAbstractItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole ) const [pure virtual

方法

因此,当收到Qt :: TooltipRole时,它会从内部缓存中计算/恢复。