1
我正在使用QItemDelegate製作表格。我使用paint(..)方法繪製委託的項目,當它們退出編輯模式時看起來是相同的,但我也需要在選擇或不選擇時繪製項目,並且在這些事件期間也調用paint方法。我的問題是我怎麼知道什麼時候畫哪個?如何確定該項目是否在QItemDelegate的paint()函數中被選中?
謝謝。
我正在使用QItemDelegate製作表格。我使用paint(..)方法繪製委託的項目,當它們退出編輯模式時看起來是相同的,但我也需要在選擇或不選擇時繪製項目,並且在這些事件期間也調用paint方法。我的問題是我怎麼知道什麼時候畫哪個?如何確定該項目是否在QItemDelegate的paint()函數中被選中?
謝謝。
的QItemDelegate.paint
方法接受QStyleOptionViewItem
作爲參數,這是從QStyleOption
繼承。 QStyleOption
的成員變量名稱爲state
,類型爲QStyle::State
。狀態的可能位標誌之一是QStyle::State_Selected
,這是你想要測試的。
thx很多,我知道這是對象,但找不到在哪裏。我還有一個問題可以回答:我的表格中的特殊視圖實際上是一個QPushButton。我想知道如果我知道如何在點擊它時改變文本,並且同時使其他列的文本也改變值。 – 2009-11-11 01:05:45
@yan:我不知道一個簡單的方法來做到這一點。複雜的方法是使用給予委託的模型索引,使用它來獲取模型,並以某種方式通知模型,以改變它爲數據返回的值。然後從模型中返回該列中每行的不同數據。 – 2009-11-11 14:42:54