2013-08-07 13 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',計算哪個項目鼠標結束並顯示工具提示? –

相關問題