Qt/PyQt5 강좌
호버와 클릭 효과 있는 PyQt5 QPushButton 예제
webnautes
2024. 11. 8. 23:12
반응형
호버와 클릭 효과 있는 PyQt5 QPushButton 예제입니다.
최초작성 2024. 11. 8
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QVBoxLayout, QLabel from PyQt5.QtCore import Qt from PyQt5.QtGui import QFont class MainWindow(QMainWindow): def __init__(self): super().__init__() self.count = 0 # 카운터 초기화 # 윈도우 설정 self.setWindowTitle("버튼 예제") self.setFixedSize(300, 300) # 메인 위젯과 레이아웃 설정 main_widget = QWidget() self.setCentralWidget(main_widget) layout = QVBoxLayout() main_widget.setLayout(layout) # 레이블 스타일 정의 label_style = """ QLabel { color: #2c3e50; background-color: #ecf0f1; padding: 10px; border-radius: 5px; border: 1px solid #bdc3c7; } """ # 버튼 스타일 정의 button_style = """ QPushButton { background-color: #4a90e2; color: white; border: none; padding: 10px 20px; border-radius: 5px; font-size: 13pt; min-width: 120px; } QPushButton:hover { background-color: #357abd; } QPushButton:pressed { background-color: #2a5d8c; } """ # 숫자 레이블 생성 self.number_label = QLabel("0") self.number_label.setStyleSheet(label_style) self.number_label.setAlignment(Qt.AlignCenter) self.number_label.setFont(QFont("Arial", 20, QFont.Bold)) # 버튼 생성 self.button = QPushButton("클릭하세요") self.button.setStyleSheet(button_style) self.button.clicked.connect(self.button_clicked) # 위젯들을 레이아웃에 추가 layout.addStretch() layout.addWidget(self.number_label) layout.addWidget(self.button, alignment=Qt.AlignCenter) layout.addStretch() def button_clicked(self): self.count += 1 self.number_label.setText(str(self.count)) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) |
반응형