Skip to content
toylee blog · 컴퓨터, 프로그램 정보 공유

toylee blog · 컴퓨터, 프로그램 정보 공유

파이썬 Pyqt6 QTreeView 위젯 사용

toylee, 2023년 05월 22일

GUI 프로그래밍에서 계층적 데이터를 표시해야 하는 경우, QTreeView는 매우 유용한 도구입니다. 파이썬 Pyqt6 QTreeView 위젯 사용시 윈도우 파일 탐색기에서 볼 수 있는 폴더 구조와 같은 계층적 데이터를 보여줄 때 사용됩니다.

[목차]

  • 1. 파이썬 Pyqt6 QTreeView 란?
  • 2. 파이썬 Pyqt6 QTreeView 만들기
  • 3. 파이썬 Pyqt6 QTreeView 사용 이유
  • 4. QTreeView 예제
  • 5. 결론 및 의견

1. 파이썬 Pyqt6 QTreeView 란?

QTreeView는 계층적 데이터를 시각적으로 보여주는 PyQt6 클래스입니다. PyQt6의 QTreeView는 데이터를 노드와 간선의 트리 구조로 표현합니다. 각각의 노드는 자식 노드를 가질 수 있으며, 이를 이용하여 데이터를 계층적으로 보여줍니다.

2. 파이썬 Pyqt6 QTreeView 만들기

QTreeView 만드는 방법은 간단합니다. 먼저, QTreeView 클래스를 이용하여 TreeView를 생성합니다. 그리고 데이터를 연결하기 위해 QStandardItemModel 클래스를 사용합니다. 이 클래스는 TreeView에 표시될 데이터를 담는 모델 역할을 합니다. 데이터를 모델에 추가할 때는 QStandardItem 클래스를 이용합니다.

다음과 같은 코드를 작성할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import sys
from PyQt6.QtWidgets import QApplication, QTreeView
from PyQt6.QtGui import QStandardItem, QStandardItemModel
 
app = QApplication(sys.argv)
tree_view = QTreeView()
model = QStandardItemModel()
root_node = model.invisibleRootItem()
 
parent1 = QStandardItem(‘Parent 1’)
parent1.appendRow([QStandardItem(‘Child 1-1’), QStandardItem(‘Child 1-2’)])
parent2 = QStandardItem(‘Parent 2’)
parent2.appendRow([QStandardItem(‘Child 2-1’), QStandardItem(‘Child 2-2’)])
root_node.appendRow([parent1, parent2])
 
tree_view.setModel(model)
tree_view.show()
sys.exit(app.exec())
 
Colored by Color Scripter
cs

[실행화면]

파이썬 Pyqt6 QTreeView 1

PyQt6의 QTreeView, QStandardItemModel, QStandardItem 클래스를 사용하여 간단한 TreeView를 만드는 예제입니다. 코드를 실행하면, 위에서 작성한 예시 이미지와 같은 TreeView가 생성됩니다.

3. 파이썬 Pyqt6 QTreeView 사용 이유

QTreeView는 데이터의 계층 구조를 시각화하고 사용자의 작업을 단순화하는 데 사용됩니다. 또한, 데이터를 구성하고 계층적인 구조를 만들 수 있습니다. 사용자는 노드를 확장하거나 축소하여 데이터의 서브 섹션을 볼 수도 있습니다. 노드 클릭시 데이터를 수정하거나 삭제할 수 있습니다.

QTreeView는 마치 윈도우 탐색기와 같이 많은 종류의 데이터를 표시할 수 있습니다. 예를 들어, 트리 계층은 폴더와 파일 구조, 책의 챕터와 섹션, 제품 계층 구조, 조직도 등 다양한 데이터를 표시할 수 있습니다.

예시 코드를 살펴보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import sys
from PyQt6.QtWidgets import QApplication, QTreeView, QMainWindow
from PyQt6.QtGui import QFileSystemModel
 
app = QApplication(sys.argv)
 
window = QMainWindow()
window.setWindowTitle(“TreeView Example”)
 
tree_view = QTreeView(window)
tree_view.setGeometry(10, 10, 400, 300)
 
model = QFileSystemModel()
model.setRootPath(“”)
tree_view.setModel(model)
tree_view.setRootIndex(model.index(“”))
 
window.show()
sys.exit(app.exec())
 
Colored by Color Scripter
cs

[실행화면]

파이썬 Pyqt6 QTreeView 2

QTreeView 위젯을 사용하여 파일 시스템 계층 구조를 표시합니다. QFileSystemModel은 트리 보기에서 데이터를 채우는 모델로 사용됩니다. 루트 경로를 빈 문자열로 설정하면 전체 파일 시스템이 표시됩니다. 루트 경로를 수정하여 특정 디렉터리를 표시하거나 요구 사항에 따라 트리 보기에 표시되는 데이터를 사용자 지정할 수 있습니다.

4. QTreeView 예제

PyQt6에서 TreeViews를 만드는 방법을 이해했다면, 간단한 예제를 통해 TreeViews를 더욱 자세히 살펴볼 수 있습니다.

다음 예제는 PyQt6를 이용하여 만든 TreeView를 통해 이해하기 쉬운 계층적 데이터를 보여줍니다. 중요한 점은, 이 예제에서도 위에서 작성한 예제와 같이 QTreeView, QStandardItemModel, QStandardItem 클래스를 사용한다는 것입니다.

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
from PyQt6.QtGui import QStandardItemModel, QStandardItem
from PyQt6.QtWidgets import QApplication, QTreeView
 
def main():
    app = QApplication([])
    tree_view = QTreeView()
    model = QStandardItemModel()
    root_node = model.invisibleRootItem()
 
    # 1st level
    parent_1 = QStandardItem(‘Parent 1’)
    parent_1.appendRow([
        QStandardItem(‘Child 1-1’),
        QStandardItem(‘Child 1-2’),
        QStandardItem(‘Child 1-3’)
    ])
 
    # 2nd level
    parent_2 = QStandardItem(‘Parent 2’)
    parent_2.appendRow([
        QStandardItem(‘Child 2-1’),
        QStandardItem(‘Child 2-2’),
        QStandardItem(‘Child 2-3’)
    ])
 
    # 3rd level
    parent_3 = QStandardItem(‘Parent 3’)
    parent_3.appendRow([
        QStandardItem(‘Child 3-1’),
        QStandardItem(‘Child 3-2’),
        QStandardItem(‘Child 3-3’)
    ])
 
    root_node.appendRow([parent_1, parent_2, parent_3])
 
    tree_view.setModel(model)
    tree_view.show()
    app.exec()
 
if __name__ == ‘__main__’:
    main()
 
Colored by Color Scripter
cs

[실행화면]

파이썬 Pyqt6 QTreeView 3

3단계의 계층적 데이터를 보여줍니다. 각각의 Parent 노드는 3개의 Child 노드를 가지며, Child 노드는 3단계 깊이까지 계층적으로 표현됩니다.

5. 결론 및 의견

파이썬 Pyqt6 QTreeView 사용 방법을 이해하면, GUI 프로그래밍에서 계층적 데이터를 표시하는 데 유용하게 사용할 수 있습니다.

[관련글]

PyQt6 QT Designer 사용자 지정 위젯

PyQt6 위젯 정리

PyQt6 계산기 만들기

파이썬 GUI 라이브러리 – PYQT, TKINTER, KIVY

파이썬 파이썬 Pyqt6 QTreeView

글 내비게이션

Previous post
Next post

Related Posts

파이썬

PyQt6 위젯 정리

2023년 05월 16일

PyQt6는 Python에서 GUI 프로그래밍을 위해 사용되는 강력한 라이브러리입니다. 이 라이브러리는 다양한 위젯을 제공하여 사용자가 직접 만든 윈도우, 대화 상자, 버튼 등을 만들 수 있게 해줍니다. pyqt6 위젯 알아봅시다.

Read More

PyQt6를 사용한 GUI 애플리케이션 개발과 DevOps

2023년 07월 07일

효율적으로 관리하고 배포하기 위해서는 DevOps 원칙을 도입하는 것이 좋습니다. 이 글에서는 PyQt6를 사용하여 GUI 애플리케이션을 구축하는 동시에, DevOps를 통해 지속적인 통합 및 배포를 구현하는 방법에 대해 알아보겠습니다.

Read More
파이썬

python 설치 및 다운로드

2023년 04월 05일

python 설치 , 생각보다 어렵지 않습니다. 파이썬 사이트에 들어가서 설치 파일을 다운로드받은 후 install 해주면 됩니다. 이때 주의사항은 PATH 체크박스를 꼭 눌러줘야 차후 프로그램 실행시 문제 없이 실행되기 때문입니다. 같이 설치해 봅시다.

Read More

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • 하드 디스크 파티션 합치기는 이렇게 합니다.
  • SAP S4HANA 전환 가이드
  • 중소기업 ERP 성공 사례
  • 클라우드 ERP vs 온프레미스
  • ERP 도입 비용 산정 방법

최신 댓글

  1. 윈도우 단축키 모음 Best5의 ace
  2. http https 차이의 챗GPT 란? · Working for you

보관함

  • 2025년 5월
  • 2025년 4월
  • 2025년 3월
  • 2025년 2월
  • 2025년 1월
  • 2024년 12월
  • 2024년 11월
  • 2024년 8월
  • 2024년 6월
  • 2024년 5월
  • 2024년 3월
  • 2024년 2월
  • 2023년 11월
  • 2023년 9월
  • 2023년 8월
  • 2023년 7월
  • 2023년 6월
  • 2023년 5월
  • 2023년 4월
  • 2023년 3월
  • 2023년 2월

카테고리

  • flutter
  • html
  • linux
  • macbook
  • Pc Useful Tips
  • 미분류
  • 워드프레스
  • 자바(Java)
  • 파이썬
  • 프로그래밍
©2025 toylee blog · 컴퓨터, 프로그램 정보 공유 | WordPress Theme by SuperbThemes