본문 바로가기
Python/PyQt

[Python] PyQt5 버튼 클릭 시 이벤트 발생/Python GUI(2)

by 고체물리학 2021. 9. 23.


1. Qt designer 실행
2. Main Window - 생성

3. 만들어진 Main Window창에 Push Button 드래그

버튼을 클릭하고 objectName 부분을 수정한다
추후 python에서 ui를 연결할 때 사용하는 이름

4. 다른이름으로 저장 - 파일이 포함된 폴더에 test.ui로 저장

 

5. pycharm 에서 새 프로젝트 - main.py에 pyqt라이브러리를 import 한다

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

 

6. Main Window로 저장한 test.ui를 연결하는 코드를 작성

form_main = uic.loadUiType("test.ui")[0] #ui 파일 불러오기 #test에 바로 실행시킬 파일명을 입력하면 됨

 

7. Main Window 초기 설정 부분과 버튼 클릭 시 콘솔에 결과를 출력하는 소스를 작성

class MainWindow(QMainWindow,QWidget,form_main): def __init__(self): super().__init__() self.initUI() self.show() def initUI(self): self.setupUi(self) self.pushButton.clicked.connect(self.buttonClicked) # 버튼 클릭시 연결되는 함수 def buttonClicked(self): #pushButton 클릭되었을때 구현되는 함수 print("버튼누름")

 

8. MainWidow를 실행하기 위해서 QApplication 객체를 생성하고 exec_ 메서드를 호출해야 하는데
이 부분은 인터프리터에서 직접 실행하기 때문에 if __name__ == "__main__": 문에서 작성

if __name__ == "__main__": app = QApplication(sys.argv) win = MainWindow() sys.exit(app.exec_())

 

9. 전체 코드

import sys from PyQt5.QtWidgets import * from PyQt5 import uic form_main = uic.loadUiType("test.ui")[0] #ui 파일 불러오기 #test에 바로 실행시킬 파일명을 입력하면 됨 class MainWindow(QMainWindow,QWidget,form_main): def __init__(self): super().__init__() self.initUI() self.show() def initUI(self): self.setupUi(self) self.pushButton.clicked.connect(self.buttonClicked) # 버튼 클릭시 연결되는 함수 def buttonClicked(self): #pushButton 클릭되었을때 구현되는 함수 print("버튼누름") if __name__ == "__main__": app = QApplication(sys.argv) win = MainWindow() sys.exit(app.exec_())

 

10. 실행화면

https://www.youtube.com/watch?v=jMpE6KLFh6k 

 

반응형

댓글