1

作成して QListWidget に追加したアイテムのリストがあり、これらのアイテムは「分類」されています。

次のコードには、 と の 2 つのカテゴリが-- All Nums --あり-- All Letters --ます。また、各カテゴリ内には、そのサブ項目があります。

全ての項目をチェック可能にしたので、これらのヘッダ項目をチェック/チェック解除して、そのサブ項目に影響を与えることはできますか?

例えば。をチェックする-- All Numsと、すべてnum_itemsもチェックされます。チェックを外すと、それらもチェックが外れます。


class TestDialog(QtGui.QDialog):
    def __init__(self, parent=None):
        super(TestDialog, self).__init__()
        self.listWidget = QtGui.QListWidget()

        all_num = QtGui.QListWidgetItem('-- All Nums --')
        self.listWidget.addItem(all_num)

        num_items = ['One', 'Two', 'Three']
        for num in num_items:
            self.listWidget.addItem(num)

        all_letters = QtGui.QListWidgetItem('-- All Letters --')
        self.listWidget.addItem(all_letters)

        letter_items = ['One', 'Two', 'Three']
        for letter in letter_items:
            self.listWidget.addItem(letter)

        for index in range(self.listWidget.count()):
            item = self.listWidget.item(index)
            item.setFlags(
                item.flags() |
                QtCore.Qt.ItemIsUserCheckable |
                QtCore.Qt.ItemIsEditable
            )
            item.setCheckState(QtCore.Qt.Unchecked)

        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.listWidget)


if __name__ == '__main__':
    import sys
    app = QtGui.QApplication(sys.argv)
    w = TestDialog()
    w.show()
    sys.exit(app.exec_())
4

1 に答える 1