2011-06-08 277 views
2

我添加複選框到QlistWidget這樣PyQt的:查詢複選框在QListWidget

item = QtGui.QListWidgetItem(listWidget) 
ch = QtGui.QCheckBox() 
listWidget.setItemWidget(item, ch) 

喜歡這裏 Can't change state of checkable QListViewItem with custom widget

,但我不知何故無法獲得的複選框項背的時候檢查我想知道他們是否被用戶檢查過。我必須缺少一些非常基本的東西...

for index in xrange(listWidget.count()): 
    it=listWidget.itemAt(index,0) 

所以我需要知道用戶檢查列表中的哪個複選框? 我不知道如何處理返回的列表項目對象以獲取複選框狀態。 我應該使用複選框回調嗎?似乎更容易

回答

3

我不認爲你想用itemAt來獲得該項目。從QListWidget文檔:

QListWidgetItem QListWidget.itemAt(自我,詮釋斧頭,INT AY)

返回一個指針座標(X,Y)的項目。

您可能想要QListWidget.item()。使用您可以循環在列表中的項目,並得到這樣的檢查狀態

for index in xrange(listWidget.count()): 
    check_box = listWidget.itemWidget(listWidget.item(index)) 
    state = check_box.checkState() 
+0

感謝這麼多,它的工作原理 – user501743 2011-06-09 00:26:40

+0

如果listwidget是qlistwidget,什麼是itemWidget? – user1938107 2014-03-12 05:55:36