기타
PyQt5
DevStudy
2022. 1. 15. 21:49
QColorDialog

컬러 다이얼로그 (QColorDialog)는 색상을 선택할 수 있는 다이얼로그입니다. (QColorDialog 공식 문서 참고)
예제
## Ex 6-2. QColorDialog.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QFrame, QColorDialog
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, 35, 100, 100)
self.setWindowTitle('Color 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_())
우선 푸시 버튼 하나와 QFrame 하나를 만들고, QFrame 위젯의 배경색은 검정색으로 설정했습니다.
QColorDialog를 사용해서, 배경색을 바꿀 수 있습니다.
설명
col = QColor(0, 0, 0)
QColor를 사용해서 배경색인 검정색을 만들었습니다.
col = QColorDialog.getColor()
QColorDialog를 띄우고, getColor() 메서드를 통해 색상을 저장합니다.
if col.isValid():
self.frm.setStyleSheet('QWidget { background-color: %s }' % col.name())
색상을 선택하고 ‘OK’ 버튼을 눌렀다면, col.isValid()의 불 값이 True이고, ‘Cancel’ 버튼을 눌렀다면, 불 값이 False가 됩니다.
선택한 색상이 프레임의 배경색으로 설정됩니다.
결과

