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

파이썬

Python 리스트(list) 총정리

2023년 06월 28일

리스트는 여러 개의 값을 담을 수 있으며, 각 값들은 쉼표(,)로 구분됩니다. 리스트는 수정 가능한(mutable) 자료형으로, 값을 추가하거나 삭제하거나 변경할 수 있습니다. 이번 글에서는 Python 리스트(list) 총정리 같이 해보겠습니다.

Read More

파이썬으로 프로그램을 만들려면 어떻게 해야 하나요?

2024년 11월 03일

파이썬은 현재 가장 인기 있는 프로그래밍 언어 중 하나로, 초보자와 숙련된 개발자 모두에게 적합한 선택입니다. 특히, 파이썬은 그 문법이 간단하고 가독성이 뛰어나기 때문에 시작하기 쉽습니다. 모든 사람들이 기술적으로 힘들다고 느끼는 개념을 쉽게 이해할 수 있게 도와줍니다. 또한, 다양한 라이브러리와 프레임워크가 존재하여 사용자의 필요에 맞게 프로그래밍을 수행할 수 있는 유연성을 제공합니다….

Read More
파이썬

데이터시각화 PyQt 사용 방법

2023년 06월 18일

데이터 분석 및 시각화의 세계에서 인터랙티브하고 시각적으로 매력적인 데이터 표현을 생성하는 것은 통찰력을 얻고 정보를 효과적으로 전달하는 데 필수적입니다. 데이터시각화 PyQt 사용을 통한 공부 같이 시작해 볼까요?

Read More

답글 남기기 응답 취소

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

최신 글

  • 안드로이드 버전 업그레이드 방법
  • 그래픽 카드 고장 증상, 해결법도 같이 알아보자
  • 그래픽카드 가격, 2025년 시세
  • 하드 디스크 복구 방법, 알려드릴게요
  • 디스플레이텍 이란?

최신 댓글

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

보관함

  • 2025년 6월
  • 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