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_())