PySide6은 Qt 프레임워크를 사용하여 Python으로 작성된 디스플레이용 애플리케이션을 작성할 수 있는 패키지입니다.
이 패키지를 사용하여 간단한 버튼 예제를 만들 수 있습니다.
예제에서는 PySide6의 QApplication, QWidget, QPushButton, QLabel, QVBoxLayout 클래스를 사용합니다.
QApplication 클래스는 Qt 애플리케이션을 초기화하고 이벤트 루프를 시작하는 데 사용됩니다.
QWidget 클래스는 기본 창을 나타내는 데 사용됩니다.
QPushButton 클래스는 버튼을 생성하는 데 사용되며 QLabel 클래스는 텍스트 레이블을 생성하는 데 사용됩니다.
QVBoxLayout 클래스는, 수직 박스 레이아웃을 생성하기 위해서 사용됩니다.
예제에서는 Example 클래스를 정의합니다.
이 클래스는 QWidget 클래스를 상속합니다.
__init__() 메서드는 initUI() 메서드를 호출합니다.
initUI() 메소드는 버튼과 라벨을 생성해, 레이아웃을 설정합니다.
버튼의 clicked 시그널의 buttonClicked() 슬롯을 접속합니다.
이 슬롯은 레이블의 텍스트를 업데이트하고 카운트를 늘리고 창 제목을 업데이트합니다.
버튼과 레이블은 self.button 및 self.label의 인스턴스 변수로 정의됩니다.
이러한 인스턴스 변수는 클래스의 어느 곳에서나 액세스할 수 있습니다.
이 예에서는 QVBoxLayout 클래스를 사용하여 레이블과 버튼을 수직으로 배치합니다.
setAlignment() 메소드를 사용해 라벨을 중앙에 배치합니다.
이 예에서는 self.count 변수를 사용하여 클릭한 횟수를 추적합니다.
레이블과 창 제목에 클릭한 횟수를 보려면 setText() 및 setWindowTitle() 메서드를 사용합니다.
if __name__ == ‘__main__’: 블록은 QApplication 인스턴스를 만들고 Example 클래스의 인스턴스를 만들고 app.exec() 메서드를 호출하여 이벤트 루프를 시작합니다.
이 예제에서는 PySide6을 사용하여 간단한 버튼 예제를 만드는 방법을 보여줍니다.
이 예제를 사용하여 PySide6를 시작하여 Python에서 디스플레이용 애플리케이션을 만들 수 있습니다.
#python cede QPushButton 예제 (5) 버튼 수 적용
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 버튼 생성
self.button = QPushButton('클릭하세요', self)
self.button.setToolTip('버튼입니다')
self.button.clicked.connect(self.buttonClicked)
# 레이블 생성
self.label = QLabel('버튼을 클릭하세요.', self)
self.label.setAlignment(Qt.AlignCenter)
# 수직 박스 레이아웃 생성
vbox = QVBoxLayout()
vbox.addWidget(self.label)
vbox.addWidget(self.button)
self.setLayout(vbox)
# 카운트 초기화
self.count = 0
# 윈도우 설정
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('버튼 예제')
self.show()
def buttonClicked(self):
# 레이블 업데이트
self.label.setText('버튼이 클릭되었습니다.
')
# 카운트 증가
self.count += 1
self.setWindowTitle(f'버튼 예제 ({self.count}회 클릭)')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec())