아래 예제를 Line by Line으로 살펴보자
import sys
from PySide6.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem # 필요한 class import함
data = {"Project A": ["file_a.py", "file_a.txt", "something.xls"], # 딕셔너리(Dic) 형태로 자료를 저장함
"Project B": ["file_b.csv", "photo.jpg"],
"Project C": []}
app = QApplication() # QApplicatoin class의 instance를 생성
tree = QTreeWidget() # QTreeWidget의 instance 생성
tree.setColumnCount(2) # QTreeWidget의 column을 2로 설정
tree.setHeaderLabels(["Name", "Type"]) # column의 label을 설정함
items = []
for key, values in data.items(): # 딕셔너리(Dic)에서 key와 value의 값을 얻어옴
item = QTreeWidgetItem([key]) # "Name" column에 key값을 할당한 item 생성
for value in values:
ext = value.split(".")[-1].upper() # values 각각의 요소의 확장자를 구함
child = QTreeWidgetItem([value, ext]) # "Name" column 에 value 값을, "Type" column에 ext 값을 할당한 child 생성
item.addChild(child) # child를 item의 child로 추가한다.
items.append(item) # key를 items list에 추가한다.
tree.insertTopLevelItems(0, items) # index 0에 items을 추가한다.
#tree.addTopLevelItems(items) # 위 code와 동일한 의미
tree.show()
sys.exit(app.exec())
item = QTreeWidgetItem([key]) # "Project A", "Project B", "Project C"
위 code는 인자로 전달된 [key]를 첫번째 column인 "Name"에 할당한 item을 생성하고,
아래 code는 인자로 전달된 [value, ext] 중 첫번째 값인 value를 "Name" column에 할당하고 두번째 인자인 ext를 "Type" column에 할당한 child를 생성한다.
child = QTreeWidgetItem([value, ext]) # ["file_a.py", "PY"]
결과는 아래와 같다..
tree.insertTopLevelItems(0, items) # index 0에 items을 추가한다.
//tree.addTopLevelItems(items) # 위 code와 동일한 의미
Items list (부모 : "Project A", "Project B", ...) 를 QTreeWidget의 TopLevel에 추가하는 코드(???) 인거 같은데..
정확히는 잘 모르겠다..
[PySide6] Tab Widget 사용하기 (0) | 2021.09.01 |
---|---|
[PySide6] Tree Widget을 사용하여 data 출력 (0) | 2021.09.01 |
[PySide6] QDialog 창 with Modal/Modaless (0) | 2021.09.01 |
[PySide6] QMainWindow 사용하기 (0) | 2021.09.01 |
[PySide6] 버튼 사용하기 #2 (0) | 2021.09.01 |