Skip to content
toylee blog
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

  • 홈
  • 컴퓨터 활용
  • 프로그래밍
    • 파이썬
    • 자바(Java)
    • Flutter
    • HTML
    • Linux
    • 워드프레스
  • 맥북
  • IT 일반
  • 블로그 소개
  • 문의하기
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

PyQt6 QT Designer 사용자 지정 위젯

toylee, 2023년 05월 19일

PyQt6를 사용하면 다양한 위젯을 만들 수 있지만 때로는 기본 제공 위젯만으로는 원하는 기능을 구현하기 어려운 경우가 있습니다. 이런 경우 PyQt6 QT Designer 사용자 지정 위젯 만들기가 가능합니다. 몇가지 예시와 내용을 통해 같이 알아 보겠습니다.

[목차]

  • 1. PyQt6 사용자 지정 위젯 만들기
  • 2. Qt Designer 사용한 위젯 만들기
    • [Qt Designer 사용자 정의 위젯 설계]
    • [Qt Designer 형식에서 Python 코드 생성]
    • [Python 코드 작성 – from custom_widget_ui]
  • 3. PyQt6 사용자 지정 위젯 활용
  • 4. 결론 및 의견

1. PyQt6 사용자 지정 위젯 만들기

PyQt6에서 사용자 지정 위젯을 만드는 것은 꽤 간단합니다. 우선 PyQt6.QtWidgets.QWidget 클래스를 상속하는 새 클래스를 만듭니다. 그런 다음 새 클래스에서 사용할 모든 위젯, 레이아웃 및 다른 구성 요소를 정의합니다.

예를 들어, 새 클래스에서 QPushButton과 QLabel 위젯을 사용하려면 새 클래스에서 이러한 위젯을 만들고 배치해야합니다. 이러한 구성 요소는 원하는 기능에 따라 다양하게 조합할 수 있습니다.

PyQt6 QT Designer 사용자 지정 위젯
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
from PyQt6.QtWidgets import QWidget, QApplication, QVBoxLayout, QPushButton, QLabel
 
 
class CustomWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()
 
    def init_ui(self):
        layout = QVBoxLayout()
 
        button = QPushButton(“Click me”)
        label = QLabel(“Hello, World!”)
 
        layout.addWidget(button)
        layout.addWidget(label)
 
        self.setLayout(layout)
 
 
if __name__ == ‘__main__’:
    app = QApplication([])
    widget = CustomWidget()
    widget.show()
    app.exec()
 
Colored by Color Scripter
cs

2. Qt Designer 사용한 위젯 만들기

사용자 지정 위젯을 만드는 또 다른 방법은 Qt Designer를 사용하는 것입니다. Qt Designer는 PyQt6에서 GUI를 디자인하고 코드를 생성하는 데 사용되는 시각적인 도구입니다. 디자인을 마친 후 코드를 생성하면 사용자 지정 위젯을 쉽게 만들 수 있습니다. 쉽게 말하자면 파이썬 코드로 ui를 변환하여 불러오는 방법 중 하나 입니다.

ui를 유지한 상태로 파이썬에 불러오길 원한다면 아래 링크 글을 참고해주세요

PYQT GUI 기본세팅-파이썬

[Qt Designer 사용자 정의 위젯 설계]

  • Qt Designer를 시작하고 새 양식을 만듭니다.
  • 원하는 위젯(예: QPushButton 및 QLabel)을 양식으로 끌어다 놓습니다.
  • 필요에 따라 위젯의 속성, 레이아웃 및 디자인을 사용자 지정합니다.
  • 양식을 “custom_widget.ui”로 저장합니다.
QT Designer 1
QT Designer 2

[Qt Designer 형식에서 Python 코드 생성]

  • 터미널 또는 명령 프롬프트를 열고 “custom_widget.ui”가 저장된 디렉토리로 이동합니다.
  • 명령을 사용하여 pyuic6.ui 파일에서 Python 코드를 생성합니다.
1
2
pyuic6 –x custom_widget.ui –o custom_widget_ui.py
 
Colored by Color Scripter
cs
  • 이 명령은 사용자 정의 위젯의 디자인을 나타내는 코드가 포함된 “custom_widget_ui.py”라는 Python 파일을 생성합니다.ui

[Python 코드 작성 – from custom_widget_ui]

  • 별도의 Python 파일을 만들고 “main.py”라고 하고 필요한 모듈을 가져옵니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from PyQt6.QtWidgets import QApplication, QWidget
from custom_widget_ui import Ui_CustomWidget  # Import the generated custom widget class
 
class CustomWidget(QWidget, Ui_CustomWidget):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
 
if __name__ == ‘__main__’:
    app = QApplication([])
    widget = CustomWidget()
    widget.show()
    app.exec()
 
Colored by Color Scripter
cs
  • 이 코드에서 필요한 모듈을 가져오고 “custom_widget_ui.py”에서 생성된 사용자 방지 위젯 클래스( Ui_CustomWidget)를 가져옵니다.
  • QWidget및 Ui_CustomWidget모두 상속되는 새 클래스를 CustomWidget정의합니다.
  • init메서드 내에서 setupUi(self)호출하여 생성된 코드를 사용하여 사용자 정의 위젯을 설정합니다.
  • if name == ‘main‘:블록에서 QApplication제작을 CustomWidget제한하고 표시하고 애플리케이션 이벤트 루프를 시작합니다.

3. PyQt6 사용자 지정 위젯 활용

PyQt6에서 사용자 지정 위젯을 만들면 기존 위젯보다 더 큰 유연성과 기능을 제공하는 애플리케이션을 만들 수 있습니다. 예를 들어, 사용자 지정 위젯을 사용하여 데이터베이스 연결, 파일 열기 및 저장, 그래픽 표시 등을 수행하는 애플리케이션을 만들 수 있습니다. 자신만의 구성 요소를 만들어 애플리케이션을 더욱 효율적이고 유연하게 만들 수 있습니다.

PyQt6 사용자 지정 위젯 활용1
PyQt6 사용자 지정 위젯 활용2
PyQt6 사용자 지정 위젯 활용3

FileSelectionWidget이 예제에서는 사용자가 파일을 선택할 수 있도록 하는 사용자 지정 위젯을 만듭니다 . 위젯은 QPushButton파일 선택 대화 상자를 트리거하는 것과 QLabel선택한 파일 경로를 표시하는 것으로 구성됩니다.

메서드 내부에서 init_ui레이아웃을 설정하고 clicked의 신호를 메서드 select_file_button에 연결합니다 select_file.

이 select_file메서드는 사용자가 버튼을 클릭할 때 트리거됩니다. QFileDialog사용자가 파일을 선택할 수 있는 곳이 열립니다 . 파일을 선택하면 파일 경로가 에 표시됩니다 selected_file_label.

코드를 실행하면 사용자 정의 위젯이 표시되며 사용자는 “파일 선택” 버튼을 클릭하여 파일을 선택할 수 있습니다. 그러면 선택한 파일 경로가 위젯에 표시됩니다.

사용자 정의 위젯에 추가 기능을 추가하거나 애플리케이션 요구 사항에 따라 다른 기능으로 다른 사용자 정의 위젯을 생성하여 이 예제를 확장할 수 있습니다.

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
from PyQt6.QtWidgets import QWidget, QApplication, QVBoxLayout, QPushButton, QLabel, QFileDialog
 
class FileSelectionWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()
 
    def init_ui(self):
        layout = QVBoxLayout()
 
        self.selected_file_label = QLabel(“No file selected”)
 
        select_file_button = QPushButton(“Select File”)
        select_file_button.clicked.connect(self.select_file)
 
        layout.addWidget(select_file_button)
        layout.addWidget(self.selected_file_label)
 
        self.setLayout(layout)
 
    def select_file(self):
        file_dialog = QFileDialog()
        file_path, _ = file_dialog.getOpenFileName(self, “Select File”)
        if file_path:
            self.selected_file_label.setText(file_path)
 
if __name__ == ‘__main__’:
    app = QApplication([])
    widget = FileSelectionWidget()
    widget.show()
    app.exec()
 
Colored by Color Scripter
cs

4. 결론 및 의견

사용자 지정 위젯을 만드는 것은 모든 PyQt6 개발자에게 권장되는 기술입니다. 사용자 지정 위젯을 만들면 더욱 효율적이고 유연한 애플리케이션을 만들 수 있습니다. 이제 PyQt6 QT Designer 사용자 지정 위젯 방을 알게되었으니, 여러분도 한번 도전해보세요!

[관련글]

PyQt6 계산기 만들기
파이썬 GUI 라이브러리 – PYQT, TKINTER, KIVY

python tkinter gui 만들기

python tkinter 란?

파이썬 qt designer

글 탐색

Previous post
Next post

Related Posts

파이썬

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

2023년 05월 14일

Python은 쉽고 빠른 GUI 라이브러리를 가지고 있어서 많은 개발자들이 GUI 애플리케이션을 개발합니다. 그러나, 어떤 라이브러리가 좋은지 쉽지 않습니다. 다른 파이썬 GUI 라이브러리와의 비교를 통해 라이브러리 선택에 도움을 주고자 합니다.

Read More

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

2024년 11월 03일

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

Read More
파이썬

파이썬 QMessageBox, 다이얼로그, 파일창

2023년 05월 20일

PyQt6는 다양한 GUI 요소를 제공하며, 메세지박스(QMessageBox)는 그 중 하나입니다. 메세지박스는 알림 또는 입력 상자와 같은 팝업 창을 말합니다. 파이썬 QMessageBox 외 다이얼로그, 파일창 예제까지 같이 알아보겠습니다.

Read More

최신 글

  • 랜섬웨어 예방 기본 설정: 소중한 파일을 지키기 위한 필수 보안 수칙
  • 맥북 저장공간 정리 순서: 부족한 용량을 안전하게 확보하는 요령
  • 디버깅 체크리스트 정리: 프로그램 오류를 빠르게 해결하는 순서
  • meta description 작성 팁: 검색 결과 클릭률을 높이는 요약문 작성 방법
  • 워드프레스 이미지 최적화 기본 원리와 사이트 속도를 지키는 실천 요령

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 2026년 9월
  • 2026년 8월
  • 2026년 2월
  • 2025년 7월
  • 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
  • IT 일반
  • Linux
  • 맥북
  • 워드프레스
  • 자바(Java)
  • 컴퓨터 활용
  • 파이썬
  • 프로그래밍

사이트 안내

  • 블로그 소개
  • 문의하기
  • 개인정보 처리방침
©2026 toylee blog | WordPress Theme by SuperbThemes