QColorDialog Class는 색상을 선택할 수 있는 대화창입니다. (QColorDialog 공식 문서) 참고
38-1 예제: ex37
| import sys from PyQt5.QtWidgets import (QApplication, QWidget, QColorDialog, QPushButton, QFrame) from PyQt5.QtGui import QColor class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): col = QColor(0, 0, 0) self.btn = QPushButton('Dialog', self) self.btn.move(30, 30) self.btn.clicked.connect(self.showDialog) self.frm = QFrame(self) self.frm.setStyleSheet('QWidget { background-color: %s }' % col.name()) self.frm.setGeometry(130, 33, 100, 100) self.setWindowTitle('QColor Dialog') self.setGeometry(300, 300, 250, 180) self.show() def showDialog(self): col = QColorDialog.getColor() if col.isValid(): self.frm.setStyleSheet('QWidget { background-color: %s }' % col.name()) if __name__ == '__main__': app = QApplication(sys.argv) ex = MyApp() sys.exit(app.exec_()) |
38-2 설명
QPushButton과 QFrame 하나씩을 만들고, QFrame 위젯의 배경색은 검정색으로 설정합니다.
QColorDialog를 사용해서, 배경색을 바꿀 수 있습니다.
| col = QColor(0, 0, 0) |
QColor를 사용해서 배경색인 검정색을 만들었습니다.
| def showDialog(self): col = QColorDialog.getColor() |
QColorDialog Class의 getColor() 메서드는 색상 대화창을 띄우고 사용자가 색상을 선태갛도록 합니다.
그리고 선택한 색상을 QColor Class의 형태로 반환합니다.
| if col.isValid(): self.frm.setStyleSheet('QWidget { background-color: %s }' % col.name()) |
색상을 선택하고 'OK' 버튼을 눌렀다면, col.isValid() 의 불 값이 True이고, 'Cancel' 버튼을 눌렀다면, 불 값이 False가 됩니다. 선택한 색상이 프레임의 배경색으로 설정됩니다.
38-3 결과


'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글
| 40. QFileDialog (0) | 2021.07.28 |
|---|---|
| 39. QFontDialog (0) | 2021.07.28 |
| 37. QInputDialog (0) | 2021.07.27 |
| 36. QTableWidget (0) | 2021.07.27 |
| 34. QTextEdit (0) | 2021.07.27 |