본문 바로가기
Programming/python

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

by 르미르미 2020. 3. 26.

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

 

댓글