3

このようなQlistWidgetにチェックボックスを追加しています

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

このよう にカスタムウィジェットでチェック可能なQListViewItemの状態を変更することはできません

しかし、チェックボックスの項目がユーザーによってチェックされているかどうかを知りたいときに、どういうわけか元に戻すことができません。私は非常に基本的な何かを逃しているに違いありません...

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

だから私はユーザーがチェックしたリストのどのチェックボックスを知る必要がありますか?チェックボックスの状態を取得するために、返されたリストアイテムオブジェクトをどう処理するかがわかりません。代わりにチェックボックスコールバックを使用する必要がありますか?簡単そう

4

1 に答える 1

3

アイテムを手に入れるために使いたくないと思いますitemAtQListWidgetドキュメントから:

QListWidgetItem QListWidget.itemAt (self, int ax, int ay)

座標 (x, y) にある項目へのポインターを返します。

あなたはおそらくしたいですQListWidget.item()。それを使用して、リスト項目をループして、このようなチェック状態を取得できます

for index in xrange(listWidget.count()):
    check_box = listWidget.itemWidget(listWidget.item(index))
    state = check_box.checkState()
于 2011-06-08T13:11:10.063 に答える