2010-11-23 74 views
14

在我的表單中我有一個包含可檢查QListWidgetItems一個QListWidget。我正在尋找一種方法來捕獲QListWidgetItem被選中/取消選中的事件。我沒有看到任何這樣的信號存在,但也許我錯了。什麼我目前做的是使用QListWidget :: itemClicked()信號和檢查QListWidgetItem的checkState,但這不是我想要的,因爲這種事件發生的項目被點擊任何時候,不要只是去對號翻轉。任何人都可以提供幫助嗎?謝謝!Qt/C++:檢查QListWidgetItem時的信號?

+1

我想我可以使用QListWidget :: itemChanged()信號,這是當我檢查/取消選中的項觸發解決這個搞定了,不過這也將是,如果我編輯的項目其價值,雖然我觸發現在不做,仍然是一個不完美的解決方案。 – Joseph 2010-11-23 05:30:59

+1

用`QListWidget :: itemClicked()的另一個問題是',當你使用鍵盤,e.g使用空格鍵來改變選中狀態不火。 – Hossein 2013-03-22 11:30:05

回答

0

一個額外的選項是使用自己的QAbstractListModelQListView。起初,這不會添加一些額外的代碼,因爲您需要添加自己的管理代碼。但是你的訪問權限較低。基本上,因爲QListView會問你的模型做什麼。它也將中繼輸入回到您的listmodel,您可以在其中掛鉤。

或者你可以繼承QStandardItemModel,趕上與改變的複選框一定的修改。