본문 바로가기
Programming/Python

[python] Qt Designer 화면 디자인

by NAMP 2017. 3. 18.

[python] Qt Designer 화면 디자인

Qt Designer 에서 디자인을 만든다음 파일을 저장합니다.

이 예제에서는 untitled.ui로 저장하였습니다.

커맨드창에서 python 코드로 변경하는 명령어를 실행합니다.

pyuic5 untitled.ui -o untitled.py

생성된 untitled.py 파일을 이용하여 파이썬 코드를 작성합니다.


import sys
from PyQt5.QtWidgets import *

from qt.untitled import Ui_Dialog


class XDialog(QDialog, Ui_Dialog):
    def __init__(self):
        QDialog.__init__(self)
        # setupUi() 메서드는 화면에 다이얼로그 보여줌
        self.setupUi(self)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    dlg = XDialog()
    dlg.show()
    app.exec_()

생성된 py 파일을 임포트 합니다.

해당 파일이 qt 폴더에 있고, class 명이 Ui_Dialog 이므로, from qt.untitled import Ui_Dialog 로 입력하였습니다.

생성된 untitled.py 코드는 아래와 같습니다.


# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(968, 760)
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setGeometry(QtCore.QRect(590, 710, 341, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")
        self.save = QtWidgets.QPushButton(Dialog)
        self.save.setGeometry(QtCore.QRect(390, 320, 75, 23))
        self.save.setObjectName("save")
        self.cancel = QtWidgets.QPushButton(Dialog)
        self.cancel.setGeometry(QtCore.QRect(470, 320, 75, 23))
        self.cancel.setObjectName("cancel")

        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.accept)
        self.buttonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.save.setText(_translate("Dialog", "저장"))
        self.cancel.setText(_translate("Dialog", "취소"))

댓글