Python

[PyQt5] Push Button 이벤트 발생 시키기( Clicked Event )

Crazy-M2M 2023. 4. 2. 17:30
300x250
반응형

안녕하세요. Crazy M2M입니다.
오늘은 pypt5를 이용해서 Push Button의 Clicked 이벤트 발생시키는 방법에 대해서 알아보도록 하겠습니다.

 

윈도우 GUI를 만들 때 반드시 사용되는 기능 중에 하나가 바로 Click 이벤트입니다.

마우스를 이용해서 Click 하면 어떤 기능을 수행하도록 하는게 일반적인데요.

어떻게 해서 이벤트를 발생시키는지 알아보도록 할께요. 

 

먼저 이벤트를 발생시킬 PushButton을 드래그해서 GUI에 넣습니다. 

속성창에 pushButton 이름으로 객체가 생성된걸 확인할 수 있습니다. 

 

 

다음은 pushButton의 이벤트가 발생했을때 특정 기능을 할 위젯을 넣어볼게요. 

간단하게 Line Edit를 사용해보겠습니다. 

왼쪽 위젯 상자에서 드래그해서 중간쯤에 놓아 둘께요.^^

오른쪽 속성 창에는 lineEdit으로 객체가 생성되었습니다. 

 

저장을 "a.ui"로 저장합니다. 

 

 

Push Button을 클릭했을 때 이벤트를 등록해서 사용해 보도록 하겠습니다. 

클릭을 했다면 Line Edit에 "클릭되었습니다.!!!" 이렇게 메시지를 넣는 기능을 구현해 볼게요.

 

최종 코드는 아래와 같습니다. 

참 간단하죠? ㅎㅎㅎ

 

300x250

 

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

class My_Win:
    def __init__(self) -> None:
        self.dlg = loadUi("a.ui")      
        
        self.dlg.pushButton.clicked.connect(self.btn_clicked)
                  
        self.dlg.show()
        
    def btn_clicked(self):
        self.dlg.lineEdit.setText("클릭 되었습니다. !!!!")       

app = QApplication( sys.argv)

my_win = My_Win()

app.exec()

 

코드 설명은 아래와 같습니다. 

 

PyQt5 위젯을 사용하기 위해서 아래 구문을 넣어 줍니다.

from PyQt5.QtWidgets import *

 

PyQt Designer에서 만들어진 GUI를 Load 하 기 위해서 모듈을 Import 합니다.
from PyQt5.uic import loadUi

 

System 정보를 사용하기 위해서 아래 모듈도 Import 해주세요. 
import sys

 

기능을 수행하기 위한 Class를 생성합니다. 

def __init__(self):는 Class 생성자 함수입니다. 

Class를 생성하면 자동으로 실행되는 함수라고 생각하시면 됩니다. 

 

현재 GUI를 Load 해서 Class의 변수에 저장합니다. 

self.dlg라는 변수는 GUI 객체를 저장하게 됩니다. 

 

self.dlg = loadUi("a.ui")

 

이제 Push Button의 Clicked 이벤트를 등록하는 코드입니다. 

만약 Push Button이 클릭되었다면 btn_clicked 함수를 호출하게 되는 것이지죠

 

self.dlg.pushButton.clicked.connect(self.btn_clicked)

 

Push Button의 이벤트 핸들러 함수의 내용입니다. 

현재 GUI 객체 안에 lineEdit의 객체의 TEXT를 설정하는 함수를 사용합니다. 

Line Edit의 TEXT를 설정하는 함수는 setText()입니다. 

 

self.dlg.lineEdit.setText("클릭 되었습니다. !!!!")

 

좀 이해가 되시나요? 

 

잠시 요약을 하면 Push Button의 Clicked 이벤트의 연결은 connect 함수가 대행해 줍니다. 

그래서 Push Button 클릭을 하면 Click 이벤트가 발생되고

이 이벤트가 연결된 btn_Clicked 함수가 실행되게 되는 것이지요

그리고 Line Edit의 Text 설정은 setText() 함수를 사용해서 내용을 넣을 수 있게 되는 겁니다.

 

F5를 눌러 실행해 보겠습니다.

짜잔 PyQt Designer에서 설정된 GUI가 실행이 되었습니다. 

신기 방기!!! ^^

 

 

Push Button을 클릭하니 Line Edit의 Text값이 "클릭되었습니다.!!!"로 설정이 되었습니다. 

이벤트가 실행되어 Text를 설정하는 동작이 수행되었네요.

 

반응형

 

 

이것으로 Push Button Clicked 이벤스 실행 방법에 대해서 알아보았습니다. 

그럼 오늘도 칼퇴근!!!

728x90
반응형