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

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

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

파이썬

PyQt 및 AI 인공 지능 연동 프로그램 만들기

2023년 06월 17일

PyQt는 그래픽 사용자 인터페이스(GUI) 개발을 위한 강력한 Python 프레임워크이며, 인공 지능(AI)은 데이터 분석, 패턴 인식 및 지능형 의사 결정 기능으로 다양한 산업에 혁명을 일으키고 있습니다. PyQt 및 AI 인공 지능 결합함으로써 개발자는 AI 알고리즘의 힘을 활용하고 사용자에게 지능형 기능을 제공하는 GUI 응용 프로그램을 만들 수 있습니다. PyQt 및 AI 인공…

Read More

블로그 만드는 방법, 같이 알아봅시다.

2024년 11월 06일

블로그를 만드는 것은 현대인에게 매우 중요한 작업입니다. 개인의 생각과 경험을 나누는 훌륭한 방법이 되며, 다른 사람들과 소통할 수 있는 플랫폼을 제공합니다. 블로그를 통해 전문성을 쌓고, 자신만의 브랜드를 구축할 수 있는 기회를 가질 수 있습니다. 따라서 블로그 만드는 방법에 대해 알아보는 것은 매우 유익한 일입니다. 이번 글에서는 블로그를 만드는 단계별 방법을…

Read More
파이썬

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

2023년 05월 20일

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

Read More

답글 남기기 응답 취소

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

최신 글

  • Argo Smart Routing 효과
  • CDN 캐싱 전략 성능비교
  • 동영상 CDN 비용 계산
  • 해외 쇼핑몰 CDN 최적화
  • ERP 구축 정부지원금 2025

최신 댓글

  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