2013-08-07 14 views

回答

1

我已经找到了最好的解决办法是继承QTreeWidgetItem,覆盖virtual QVariant data(int column, int role) const;并返回一个提示该项目时data被调用Qt::ToolTipRole

+0

大声笑,所以,基本上,我说什么,但没有改变模型/视图。对不起,不知道如何没有意识到它必须是一个数据方法的小部件项目:S – Trompa

+0

@Trompa:是的,没有模型的所有:) –

+0

无论如何,你应该尝试它;)。使用QStandardItemModel,您将使用与WidgetItems非常相似的QStandardItems,并且可以解耦。 – Trompa

0

我认为如果你迁移到QTreeView/Model模式,应该更容易实现你想要的。

化QAbstractItemModel有提示作用的:Qt :: ToolTipRole

你可以继承一个模型来重新实现

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

方法。

所以,当收到一个Qt :: TooltipRole时,它会从内部缓存中计算/恢复。

+0

请注意,由于QTreeWidget继承自QTreeView,因此可以为您分配自定义模型。但它会混合苹果和桔子 – Trompa

+0

我从来没有使用'QTreeView',它似乎过于复杂没有很好的理由(假设我从来没有做过一些Widget不可能做到的事情)。有没有办法通过'QTreeWidget'实现这个功能? –

+0

是否有可能重新实现'QtreeWidget :: mouseEvent()'来获得'QHoverEvent',计算哪个项目鼠标结束并显示工具提示? –

相关问题