我想顯示懸停的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