들어가며
지난 블로그에서
PySide6를 설치하고,
Qt Designer로 간단하게 GUI를 만든 후
창을 띄우는 것까지 해보았습니다.
※ [ PySide6 ] 파이썬 GUI PySide6 사용을 위한 준비
이번 블로그에서는 버튼을 하나 만들고
버튼을 누를때마다 터미널에 메시지를 띄우는 방법을 알아보겠습니다.
디자인하기
먼저 Qt Desinger를 실행해 준 다음
Widget을 선택하고 생성을 눌러줍니다.
그 다음 버튼을 하나 생성한 다음
test.ui 파일로 저장합니다.
이렇게 저장하면 Qt for Python 확장 프로그램이
알아서 해당 UI를 파이썬 코드로 바꾸어 줍니다.
코드 작성하기
test.py 파일을 하나 만들고 아래와 같이 코드를 작성합니다.
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtCore import QFile
from test_ui import Ui_Form
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
코드를 실행하면 방금 만든 창이 나타납니다.
이제 이 버튼을 클릭했을 때
터미널에 메시지를 띄우도록 코드를 작성하면 됩니다.
아래와 같이 코드를 추가합니다.
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
from test_ui import Ui_Form
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
# pushButton 클릭 시 on_pushButton_clicked() 호출하도록 연결
self.ui.pushButton.clicked.connect(self.on_pushButton_clicked)
def on_pushButton_clicked(self):
# 터미널에 메시지 출력
print("click")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
지금 만든 버튼의 이름은 pushButton이고,
이 코드를 클릭했을 때
on_pushButton_clicked() 함수에 연결하라는 의미의 코드는
다음과 같습니다.
self.ui.pushButton.clicked.connect(self.on_pushButton_clicked)
이걸 시그널이라고 합니다.
그리고 이 시그널이 발생했을 때
행할 동작을 슬롯이라고 하며 다음과 같습니다.
def on_pushButton_clicked(self):
# 터미널에 메시지 출력
print("click")
시그널과 슬롯은 다음에 자세히 다루어 보도록 하겠습니다.
시그널과 슬롯이라는 용어를 사용했지만,
그냥 단순히
무슨 입력이 발생하면(시그널)
어떤 동작을 행해라(슬롯)
라는 의미와 유사합니다.
코드 실행하기
이 코드를 실행하면
아래와 같이 버튼을 클릭할 때마다
터미널에 click 메시지가 출력이 됩니다.
마치며
이번 블로그에서는 PySide6를 사용하여 간단한 버튼클릭 이벤트를 처리하는 방법을 알아보았습니다.
버튼을 클릭할 때마다 터미널에 메시지를 출력하는 기능을 구현함으로써
PySide6의 기본적인 시그널과 슬롯 메커니즘을 이해할 수 있으셨을 것입니다.
[ 파이썬 관련 블로그 글 목록 ]
파이썬(Python) 블로그 목록
'PYTHON GUI' 카테고리의 다른 글
[ PySide6 ] 파일 선택 대화상자 활용하기 (1) | 2025.05.17 |
---|---|
파이썬(Python) GUI 라이브러리 선택 가이드 (2) | 2025.05.06 |
[ PySide6 ] PySide6에서 CSS 사용하기 기본 (0) | 2025.05.04 |
[ PySide6 ] 트레이 아이콘 애플리케이션 만들기 (0) | 2025.05.03 |
[ PySide6 ] 파이썬 GUI PySide6 사용을 위한 준비 (0) | 2025.04.27 |