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

파이썬

파이썬 Pyqt6 QTreeView 위젯 사용

2023년 05월 22일

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

Read More
파이썬

Qt Designer download

2024년 06월 24일

Qt Designer는 C++와 Python을 포함한 여러 프로그래밍 언어를 사용하는 개발자들에게 필요한 도구입니다. Qt Designer의 특징과 사용법, 설치 방법, 그리고 Qt Designer download 까지 자세히 알아보겠습니다.

Read More
파이썬

PyQt6 신호 및 슬롯, 이벤트

2023년 05월 17일

PyQt6는 이벤트 처리에 대한 강력한 지원을 제공합니다. 이번 게시물에서는 PyQt6 신호 및 슬롯 메커니즘에 대해 살펴보고, 이를 사용하여 이벤트 처리를 어떻게 수행할 수 있는지에 대해 자세히 알아보겠습니다.

Read More

답글 남기기 응답 취소

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

최신 글

  • usb 쓰기금지 해제방법, 어렵지 않아요
  • usb a타입에 대해 알아보자
  • 포토샵 누끼따기 방법
  • vpn 연결방법 쉽게 설명해드립니다.
  • usb 장치 인식 실패시 해결방안

최신 댓글

  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