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

파이썬

PyQt6 QPropertyAnimation Framework

2023년 05월 25일

GUI의 기능성은 중요하지만, 눈에 띄는 시각적인 요소도 중요합니다. GUI 요소에 애니메이션과 동적인 움직임을 추가하여 시각적으로 매력적인 GUI를 만들 수 있습니다. 이 글에서는 PyQt6 QPropertyAnimation Framework 를 살펴보고 GUI 안에 움직이는 방법에 대해 같이 알아보겠습니다. 1. PyQt6 QPropertyAnimation Framework 란? PyQt6 애니메이션 프레임워크는 Qt의 애니메이션 프레임워크를 기반으로 구축되었으며, GUI에 애니메이션을 만드는…

Read More
파이썬

PyQt6 계산기 만들기

2023년 05월 15일

프로그래밍을 배우는 많은 사람들이 자신의 첫 번째 프로그램으로 계산기를 만드는 것을 선택합니다. 그 이유는 계산기를 만들면, 파이썬에서 GUI 프로그래밍의 기본 개념을 배울 수 있기 때문입니다. 심플한 PyQt6 계산기 만들기 및 방법을 배울 것입니다.

Read More
파이썬

python tkinter 디지털 서명 패드 만들기

2023년 07월 09일

디지털 서명은 현대의 디지털 시대에서 중요한 역할을 합니다. 기존의 종이 위에 서명을 하는 방식에서 벗어나, 전자적인 형태로 서명을 생성하고 저장할 수 있는 디지털 서명 패드는 다양한 분야에서 사용되고 있습니다. 이번 글에서는 Python의 Tkinter 라이브러리를 활용하여 간단한 디지털 서명 패드를 만드는 방법에 대해 알아보겠습니다. Tkinter 라이브러리 설치하기 Tkinter는 Python의 표준 GUI…

Read More

최신 글

  • 워드프레스 글 발행 체크리스트: 놓치기 쉬운 7가지 필수 점검 항목
  • 파이썬으로 날짜와 시간 다루기: datetime과 zoneinfo 활용 방법 정리
  • 노트북 느려질 때 점검 순서: 속도 저하 원인 해결 방법 정리
  • 맥북 배터리 수명 관리 습관: 오래 쓰는 실천 방법 정리
  • 파이썬으로 반복 업무 자동화하기: 엑셀 파일 정리 효율 높이는 방법

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 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