1. New Form 만들기

  • cmd에서 designer 실행 후 아래 창 열리면, Main Window로 변경후 Create(생성) 클릭

2. Object Inspector (객체 탐색기) 

  • QMainWindow, QWidget, QMenuBar, QSatusBar의 4가지 클래스 생성 확인

3. Property Editor (속성 편집기)

  • 개체의 지오메트리 속성 확인 가능
  • QWidget에서 창 크기, 제목, 폰트 등 기본 셋팅 가능

4. 메뉴 생성

  • 디자이너 폼에 메뉴를 추가하면 객체탐색기에 Class가 추가되고, 이에 대한 속성이 보여지는것을 확인할수 있음

5. 저장과 코드 변환 (.ui → .py)

  • PyQt Designer에서 생성된 .ui 파일은 XML형태로 저장됨. 메모장으로 실행해보면 알수 있음
  • 이를 .py로 변환해주기 위해 아래 명령어를 cmd창 또는 terminal 에서 실행
pyuic5 -x 실행파일 경로\파일명.ui -o 결과파일 경로\파일명.ui

# Example
pyuic5 -x Designer_First_UI.ui -o Designer_First_UI.py
  • 아래와 같이 파이썬 코드로 변환된것을 확인할 수 있음
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'Designer_First_UI.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(400, 300)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 400, 21))
        self.menubar.setObjectName("menubar")
        self.menuNew = QtWidgets.QMenu(self.menubar)
        self.menuNew.setObjectName("menuNew")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.actionNew = QtWidgets.QAction(MainWindow)
        self.actionNew.setObjectName("actionNew")
        self.actionLoad = QtWidgets.QAction(MainWindow)
        self.actionLoad.setObjectName("actionLoad")
        self.menuNew.addAction(self.actionNew)
        self.menuNew.addAction(self.actionLoad)
        self.menubar.addAction(self.menuNew.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.menuNew.setTitle(_translate("MainWindow", "New"))
        self.actionNew.setText(_translate("MainWindow", "New"))
        self.actionLoad.setText(_translate("MainWindow", "Load"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

'GUI > PyQT' 카테고리의 다른 글

카메라 영상 출력/저장  (0) 2022.07.12
PyQT 개념, 설치  (0) 2022.07.11

+ Recent posts