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