IT/Python

PyQt5로 파이썬 GUI 만들기 / python GUI (3) py 코드와 연결하기

르미르미 2020. 3. 26. 21:07

2가지 방법이 있다. 

1. .ui 파일 그대로 사용하기. 

2. .py로 바꿔서 사용하기. 

 

1. .ui파일 사용하기 

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

#.ui 파일 이름이 UIFILE.ui 일때
form_class = uic.loadUiType("UIFILE.ui")[0]

class MyWindow(QMainWindow, form_class):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        
##내용 추가

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()

장점: ui파일을 그대로 사용하면 되므로 Qt designer의 내용이 바뀌면 바로 적용이 가능하다. 

단점: exe 파일로 만들었을 때 오류가 생길 수 있다. (ui 파일을 함께 가지고 가야한다.) 

 

 

2. .py로 바꿔서 사용하기 

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

#.ui -> .py 바뀐 파일을 import 하기. ex) UIFILE.py
import UIFILE

class MyWindow(QMainWindow, UIFILE.Ui_mainwindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        
## 내용 추가

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()      

 

장점: exe 파일을 만들었을 때 오류가 없다. py 파일 내에서 수정이 가능하다. 

단점: .ui -> .py로 바꿔야 한다. (.ui 파일이 바뀔 때 마다 바꿔야 해서 번거로울 수 있다.) 

 

>pyuic5 -x UIFILE.ui -o UIFILE.py

 

 

추가

ui 내용이 들어있는 py 코드 말고 

main py 코드에 아래와 같이 추가해도 ui 수정이 가능하다. 

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

#.ui 파일 이름이 UIFILE.ui 일때
form_class = uic.loadUiType("UIFILE.ui")[0]

class MyWindow(QMainWindow, form_class):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.setWindowTitle("하고 싶은 이름 Title")
        self.setWindowIcon(QtGui.QIcon('아이콘으로 넣고 싶은 그림 image.png'))
        
##내용 추가

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()