본문 바로가기
ETC/Python

PyQt5 버튼 클릭 이벤트(PyQt button event python)

by Guardy 2020. 8. 15.
728x90

pyqt5 버튼 클릭 이벤트 파이썬 pyqt 버튼 클릭 이벤트


PyQt5에서 UI의 버튼을 눌렀을 때 이벤트를 처리하는 코드를 작성해보도록 하겠다.

이벤트를 처리할 때 사용하는 함수는 이벤트 핸들러라고 한다.

 

UI는 다음과 같다.

간단한 QTextEdit 두개와 QpushButton하나로 UI를 만들었다.

위쪽 QTextEdit을 ID text라고 가정하고, 로그인 버튼 클릭시 값을 출력하는 코드를 작성해보자.

로그인 버튼의 objectName을 LoginButton으로 바꿔주고, 위쪽 QTextEdit을 IDText로 아래쪽 QTextEdit을 PWText로 바꾼다.

UI를 저장하고 다음 코드를 통해 UI를 파이썬 코드로 바꿔준다.

pyuic5 -x "ui 파일 이름.ui" -o "파이썬 파일 이름.py"

여기에서 로그인 버튼 코드는 다음과 같다.

self.LoginButton = QtWidgets.QPushButton(self.centralwidget)
self.LoginButton.setGeometry(QtCore.QRect(250, 30, 131, 71))
self.LoginButton.setObjectName("LoginButton")

로그인 버튼 코드 아래에 다음코드를 넣어준다.

self.LoginButton.clicked.connect(self.clickLogin)

이렇게 코드를 작성한다면 LoginButton을 클릭했을 때 clickLogin 함수로 넘어가게 된다.

clickLogin 함수를 다음과 같이 작성한다.

def clickLogin(self):
        print(self.IDText.toPlainText())

QtextEdit의 글자에 대한 값을 가져오는 방법은 여러가지가 있는데 다음과 같다.

.toPlainText() TextEdit에 쓰여있는 글자를 가져옵니다.
.setPlainText(String) TextEdit에 PlainText 형식의 글을 새로 입력합니다. Parameter에는 TextEdit에 표시할 글자가 들어갑니다.
.setText(String) TextEdit에 RichText 형식의 글을 입력합니다. Parameter에는 TextEdit에 표시할 글자가 들어갑니다.
.append(String) TextEdit에 글자를 추가합니다. 추가된 글자는 다음줄에 표시되며, Parameter에는 추가할 글자가 들어갑니다.
.clear() TextEdit에 쓰여있는 글자를 지웁니다.

원하는 기능을 IDText. 뒤에 붙여주면 된다.

s라고 치고 로그인버튼을 클릭해보면 다음과 같은 결과가 나온다.

s가 정상적으로 나오는 것을 확인할 수 있다.

 

728x90