pyside_treewidget.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# -*- coding: utf-8 -*-
import sys
# from PySide2.QtCore import ()
# from PySide2.QtGui import ()
from PySide2.QtWidgets import (QApplication, QMainWindow, QTreeWidget, QTreeWidgetItem)


class SampleUI(QMainWindow):

    def __init__(self, parent=None):
        super().__init__(parent)

        treeWidget = QTreeWidget()
        treeWidget.setColumnCount(2)
        treeWidget.setHeaderLabels(['名前', "説明"])
        self.setCentralWidget(treeWidget)
        # Listにアイテムを追加する
        rootItem = QTreeWidgetItem()
        rootItem.setText(0, "hoge")
        rootItem.setText(1, "ほげです。")
        # 一番上のItemを追加
        treeWidget.addTopLevelItem(rootItem)
        # その子供にもItemを追加
        for i in ['A', 'B', 'C']:
            cItem = QTreeWidgetItem()
            cItem.setText(0, i)
            rootItem.addChild(cItem)

        treeWidget.itemClicked.connect(self.clicked)

    def clicked(self, item):

        print(item.text(0))  # クリックしたItemをプリント
        # 子供のItemを取得する場合
        if item.childCount() == 0:
            print('子供はいません')
        else:
            for i in range(item.childCount()):
                print(item.child(i).text(0))

        # 親を取得
        if item.parent():
            print(item.parent().text(0))
        else:
            print('RootItemです。')


if __name__ == "__main__":
    app = QApplication(sys.argv)

    ui = SampleUI()
    ui.show()
    sys.exit(app.exec_())

最終更新日: 2022-06-15 15:27:01