본문 바로가기
프로그래밍/python

PyQt5로 색상 선택 다이얼로그 만들기

by 마루의 일상 2024. 6. 7.
728x90
반응형

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QColorDialog
from PyQt5.QtGui import QColor

class ColorDialogApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 윈도우 타이틀 설정
        self.setWindowTitle('Color Dialog Example')
        # 윈도우 크기 설정
        self.setGeometry(100, 100, 300, 200)

        # 버튼 생성 및 위치 설정
        self.button = QPushButton('Select Color', self)
        self.button.move(50, 50)

        # 버튼 클릭 시 이벤트 연결
        self.button.clicked.connect(self.openColorDialog)

        # 초기 색상 설정 (검은색)
        self.color = QColor(0, 0, 0)

    def openColorDialog(self):
        # QColorDialog를 이용하여 색상 선택 다이얼로그 열기
        color = QColorDialog.getColor(self.color, self, 'Select Color')
        # 만약 사용자가 색상을 선택하고 "확인" 버튼을 눌렀을 때
        if color.isValid():
            # 선택한 색상을 저장
            self.color = color
            # 윈도우의 배경색을 선택한 색상으로 변경
            self.setStyleSheet("background-color: %s" % color.name())

if __name__ == '__main__':
    # PyQt5 애플리케이션을 실행하기 위한 QApplication 인스턴스 생성
    app = QApplication(sys.argv)
    # ColorDialogApp 클래스의 인스턴스 생성
    ex = ColorDialogApp()
    # 윈도우 보이기
    ex.show()
    # 애플리케이션 이벤트 루프 시작
    sys.exit(app.exec_())

 

이 코드는 PyQt5를 사용하여 단순한 색상 선택 애플리케이션을 만드는 방법을 보여줍니다.

  • ColorDialogApp 클래스: PyQt5의 QWidget 클래스를 상속받은 사용자 정의 위젯입니다. 색상 선택 다이얼로그를 포함하는 메인 윈도우입니다.
  • initUI 메서드: 위젯의 초기 UI를 설정하는 메서드입니다. 윈도우 타이틀을 설정하고 버튼을 생성하고 배치하며, 버튼의 클릭 이벤트와 연결될 함수를 지정합니다.
  • openColorDialog 메서드: 버튼이 클릭되면 호출되는 메서드로, QColorDialog를 열어 사용자에게 색상 선택을 허용합니다. 사용자가 색상을 선택하고 확인을 누르면 선택한 색상이 윈도우의 배경색으로 설정됩니다.
728x90
반응형