업무 자동화/python & CAD

Qt Designer 학습] python 코드와 연결 하는 방법?

ToolBOX01 2025. 9. 9. 14:01
반응형

Qt Designer는 .ui파일을 생성합니다. 이는 위젯을 트리 형태로 저장하는 특수 XML 기반 포맷입니다. 이 파일들은 런타임에 로드하거나 C++ 또는 Python과 같은 프로그래밍 언어로 변환할 수 있습니다.

 

Qt Designer Download for Windows and Mac

Install Qt Designer on Windows or Mac. Only 40MB!

build-system.fman.io

 

▣ Qt Designer와 Python

Qt Designer는 Qt GUI 프레임워크 의 위젯을 사용하여 그래픽 사용자 인터페이스를 빠르게 구축할 수 있는 도구입니다 . 버튼, 텍스트 필드, 콤보 상자 등의 구성 요소를 배치할 수 있는 간단한 드래그 앤 드롭 인터페이스를 제공합니다. 

설치, 설정 및 메뉴얼 사이트 ....

 

01.02 Qt Designer의 설치와 실행

##Qt Designer의 설치 이번페이지에서는 Qt Designer를 설치하는 방법에 대해서 알아보도록 하겠습니다. ![01.02.01 QtDeisngerPic - M…

wikidocs.net

Qt Designer를 이용하여 프로그램의 ui를 제작할 때는 Widget Box에 있는 각종 위젯들을 Dialog화면으로 드래그한 후 배치합니다. 만든 화면이 실제로 프로그램이 되었을 때, 어떻게 작동될 것인지 미리보기를 보고싶다면 Control(Command) + R을 눌러서 미리보기를 볼 수도 있습니다.

Qt Designer 소개 동영상

위젯들을 배치하여 UI들을 만들었다면, 이 UI를 저장하고, Python 코드와 연결시키는 방법.
Qt Designer의 UI는 저장버튼(Control + S / Command + S)를 누르면 저장을 할 수 있습니다. 저장된 UI파일은 XML의 형식을 가지며, Python 코드에서 이 XML 파일을 Import한 후 위젯들에 기능을 할당해주면 실제로 기능을 가지고 작동하는 GUI프로그램이 되는 것입니다. 직접 XML형식의 ui파일을 수정하여 레이아웃을 수정할 수도 있습니다.

UI 파일을 저장할 때 주의할 점은 Python코드에서 import하기 쉽도록 Python 코드와 같은 디렉토리에 위치시키는 것이 좋습니다. UI파일의 이름은 원하는 이름으로 아무렇게나 지정해도 됩니다. UI파일과 Python코드를 연결시키는 방법은
1) UI파일을 통채로 Python코드로 변환시킨 후 그 파일에 코드를 작성하는 방법, 2) UI파일을 Python 코드에서 import하는 방법 이렇게 두가지가 있습니다.

※ 주의 : 

UI파일을 통채로 Python코드로 변환시킨 후 코드를 작성하는 방법은 터미널을 이용해야하는 불편함과, UI를 수정했을 때 코드를 수정하기 어렵고 최악의 경우에는 코드 전체를 다시 작성해야 하는 부작용이 있을 수 있습니다


 UI파일을 Python에 Import하여 사용하는 방법

.UI 파일과 동일한 위치에 Python파일을 하나 만든 후, 아래의 코드를 그대로 복사/붙여넣기 합니다.
이때 중간에 있는 "dialog.ui"는 자신이 가지고 있는 UI의 이름으로 수정해주셔야 합니다.

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic

#UI파일 연결
#단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
form_class = uic.loadUiType("dialog.ui")[0]

#화면을 띄우는데 사용되는 Class 선언
class WindowClass(QMainWindow, form_class) :
    def __init__(self) :
        super().__init__()
        self.setupUi(self)

if __name__ == "__main__" :
    #QApplication : 프로그램을 실행시켜주는 클래스
    app = QApplication(sys.argv) 

    #WindowClass의 인스턴스 생성
    myWindow = WindowClass() 

    #프로그램 화면을 보여주는 코드
    myWindow.show()

    #프로그램을 이벤트루프로 진입시키는(프로그램을 작동시키는) 코드
    app.exec_()

 

by korealionkk@gmail.com


반응형