import sys
from PyQt5.QtCore import QSize
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QLineEdit, QLabel, QPushButton
class MainScreen(QMainWindow):
def __init__(self, wid, hei):
super().__init__()
self.setWindowTitle("TEST SCREEN") # 프로젝트 타이틀 설정
self.setGeometry(0, 0, int(wid * .5), int(hei * .5)) # 화면 사이즈 설정
self.mainWidget = QWidget() # 메인 위젯 생성
self.mainLayout = QVBoxLayout(self.mainWidget) # 메인 레이아웃 생성 및 메인 위젯 연결
self.setCentralWidget(self.mainWidget) # 메인윈도우 센트럴위젯에 메인 위젯 연결
self.lbl = QLabel() # 라벨 생성
self.txt = QLineEdit() # 라인에디트 생성
self.btn = QPushButton("BUTTON") # 버튼 생성
self.mainLayout.addWidget(self.btn) # 메인 레이아웃에 버튼 추가
self.mainLayout.addWidget(self.lbl) # 메인 레이아웃에 라벨 추가
self.mainLayout.addWidget(self.txt) # 메인 레이아웃에 라인에드트 추가
self.btn.clicked.connect(self.doClicked) # 클릭하였을때 실행될 함수 연결
self.colorList = ['RED', "GREEN", "BLUE"]
self.idx = 0
self.show()
# 클릭 이벤트 함수
def doClicked(self):
self.lbl.setStyleSheet("background-color : " + self.colorList[self.idx]) # 라벨 색깔 변경
self.txt.setText(self.colorList[self.idx]) # 색상 텍스트 출력
if self.idx == 2:
self.idx = 0
else:
self.idx = self.idx + 1
if __name__ == '__main__':
app = QApplication(sys.argv)
size: QSize = app.primaryScreen().size() # 모니터 사이즈
main = MainScreen(size.width()/2, size.height())
sys.exit(app.exec_())
버튼을 클릭 하였을때 호출 해줄 함수 연결 부분
self.btn.clicked.connect(self.doClicked)