我使用QListWidget實現了一個彈出列表。但是我發現列表的選擇是在鼠標按下某個項目時完成的。但我想要的是點擊選擇。我該如何改變它? (不含委託)如何控制QListWidget選擇
更新:
我有QListWidget的子類。當我按住一個項目上的左鍵時,這個列表的選擇就完成了(發出信號,改變selectedItems(),改變Qss QListWidget :: item:selected {}等等)。我想要的是在項目上釋放鼠標時進行這些更改,而不是按住它。
我使用QListWidget實現了一個彈出列表。但是我發現列表的選擇是在鼠標按下某個項目時完成的。但我想要的是點擊選擇。我該如何改變它? (不含委託)如何控制QListWidget選擇
更新:
我有QListWidget的子類。當我按住一個項目上的左鍵時,這個列表的選擇就完成了(發出信號,改變selectedItems(),改變Qss QListWidget :: item:selected {}等等)。我想要的是在項目上釋放鼠標時進行這些更改,而不是按住它。
QListWidget具有的功能setSelectionMode和setSelectionBehaviour。如果這不是你想要的,請更清楚地解釋你想要達到的目標。
爲了迴應問題的更新,您需要處理小部件的鼠標事件,以防止發生鼠標按下事件時的選擇(不要調用基類函數),然後處理設置選擇你自己,以迴應鼠標釋放事件。
由於QListWidget是一個帶有內部模型的便利類,最好使用QListView,它允許您操作其selection model。
如果你決定這樣做,確保有一個很好的理由,因爲用戶期望列表部件以特定的方式工作,並改變這很可能只是騷擾用戶。
Ty您的評論。 Plz看到我的更新。 – 2014-09-22 14:41:04
@MikeShaw,更新回答,作爲迴應。 – TheDarkKnight 2014-09-22 14:44:46
是的,當我停止在事件處理程序中使用默認函數時,會出現很多奇怪的行爲。我將傳遞給QListView。 TY。 – 2014-09-22 15:28:29
子類化QListWidget – niyou 2014-09-22 14:25:53
@niyou是的,這就是我所做的。但是我怎樣才能控制選擇行爲。 – 2014-09-22 14:29:45