반응형
저번 장에서 PyQt5 기본 세팅 및 시그널-슬롯 연결을 해보았다.
https://trading-for-chicken.tistory.com/25
여기서 시그널-슬롯 연결 할 때 self.btn_test.clicked.connect(self.testclick) 과 같이 코딩을 따로 해줘야 하는데, 이는
QtDesigner에서 미리 설정해 둘 수 있다. 아래를 보자.
위 툴바에서 [시그널/슬롯편집] 아이콘을 누른다음에, 만들어두었던 'btn_test' 버튼을 클릭해서 아무데나 드래그하면
아래 '연결 설정' 창이 뜬다. 여기서 clicked()를 클릭하고 편집을 눌러보자.
여기서 [+] 버튼을 눌러 아까 만들어두었던 함수인 testclick( )를 입력하고 확인을 누른다.
그럼 위처럼 슬랏이 생성되는데 선택하고 확인을 누르면 아래와 같이 표시된다.
test 버튼을 클릭할 경우 testclick( ) 함수가 실행되는것을 직관적으로 볼 수 있다.
이제 코딩을 아래와 같이 바꿔보자.
import os
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
def resource_path(relative_path):
base_path = getattr(sys, "_MEIPASS", os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
form = resource_path('test.ui')
form_class = uic.loadUiType(form)[0]
class WindowClass(QMainWindow, form_class):
def __init__(self):
super().__init__()
self.setupUi(self)
#self.btn_test.clicked.connect(self.testclick) # 이제 이부분은 필요가 없다.
def testclick(self):
print('test')
if __name__ == '__main__':
app = QApplication(sys.argv)
myWindow = WindowClass()
myWindow.show()
app.exec_()
실행 후 test 버튼 클릭시 self.btn_test.clicked.connect(self.testclick)가 없음에도 정상 작동하는것을 확인할 수 있다.
반응형
'Pyqt5로 GUI만들기' 카테고리의 다른 글
05. [PyQt5] QProgressBar를 통해 로딩바 만들기 : 기본 로딩바 만들기 (0) | 2021.10.12 |
---|---|
04. [PyQt5] Qtimer 사용법. 시간마다 특정 행동 반복하기. (0) | 2021.10.12 |
03. [PyQt5] qtdesigner를 이용하여 창 전환 하기. (0) | 2021.10.12 |
01. [PyQt5] Qtdesigner를통한 Pyqt5 기본 세팅하기. (0) | 2021.10.06 |