Python With PyQt(2) - .py와 .ui 연결하기

gyeomii·2022년 6월 23일
0

DDITPython

목록 보기
6/18
post-thumbnail

📌 사용법

생성한 .py파일 첫 줄에 PyQt5에 관한 import를 해줘야한다.

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

UI파일 연결 : 파일명에 내가 만든 ui 파일의 이름을 적는다.

#단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
form_class = uic.loadUiType("파일명.ui")[0]

Class 만들기

#화면을 띄우는데 사용되는 Class 선언
#메인 윈도우 클래스
class WindowClass(QMainWindow, form_class) :
		#초기화 메서드
    def __init__(self) :
        super().__init__()
        self.setupUi(self)

GUI창 띄우기

#코드 실행시 GUI 창을 띄우는 부분
#__name__ == "__main__" : 모듈로 활용되는게 아니라 해당 .py파일에서 직접 실행되는 경우에만 코드 실행
출처: https://ybworld.tistory.com/35 [투손플레이스:티스토리]
if __name__ == "__main__" :
    #QApplication : 프로그램을 실행시켜주는 클래스
    app = QApplication(sys.argv) 

    #WindowClass의 인스턴스 생성
    myWindow = WindowClass() 

    #프로그램 화면을 보여주는 코드
    myWindow.show()

    #프로그램을 이벤트루프로 진입시키는(프로그램을 작동시키는) 코드
    app.exec_()

(위키독스 - '초보자를 위한 Python GUI 프로그래밍-PyQt5')
링크 : https://wikidocs.net/book/2944

📌PushButton으로 Label 글씨 바꾸기

코드

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

#UI파일 연결
#단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
form_class = uic.loadUiType("myqt01.ui")[0]

#화면을 띄우는데 사용되는 Class 선언
class WindowClass(QMainWindow, form_class) :
    def __init__(self) :
        super().__init__()
        self.setupUi(self)
        #버튼에 기능을 연결하는 코드
        self.pb.clicked.connect(self.pbFunction)
        
    #pb가 눌리면 작동할 함수
    def pbFunction(self) :
        self.lbl.setText("Good Evening")

if __name__ == "__main__" :
    #QApplication : 프로그램을 실행시켜주는 클래스
    app = QApplication(sys.argv) 

    #WindowClass의 인스턴스 생성
    myWindow = WindowClass() 

    #프로그램 화면을 보여주는 코드
    myWindow.show()

    #프로그램을 이벤트루프로 진입시키는(프로그램을 작동시키는) 코드
    app.exec_()

생성자 안에 버튼 연결코드 입력

  • self.버튼이름.clicked.connect(self.버튼클릭메소드명)
def __init__(self) :
    super().__init__()
    self.setupUi(self)
    #버튼에 기능을 연결하는 코드
    self.pb.clicked.connect(self.pbFunction)

버튼이 눌리면 동작할 함수 선언

  • 라벨의 이름을 바꿔주는 메소드다.
  • self.라벨명.setText(”원하는 텍스트)
#pb가 눌리면 작동할 함수
def pbFunction(self) :
		self.lbl.setText("Good Evening")

ui 폼 및 실행결과

profile
김성겸

0개의 댓글