from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout, QPushButton,\\
QLabel, QFontDialog, QColorDialog, QFrame
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QColor
import sys
class 글꼴컬러설정다이얼로그(QWidget):
def __init__(self):
super().__init__()
self.UI초기화()
def UI초기화(self):
self.label = QLabel('안녕하세요! 제주코딩베이스 캠프 PyQt5 강좌 입니다!', self)
self.label.setAlignment(Qt.AlignCenter)
btn1 = QPushButton('폰트 선택', self)
btn1.clicked.connect(self.showFont)
color = QColor(Qt.black)
self.colorFrame = QFrame(self)
self.colorFrame.setStyleSheet(
f'background-color: {color.name()};')
btn2 = QPushButton('색상 선택', self)
btn2.clicked.connect(self.showColor)
vbox = QVBoxLayout()
vbox.addWidget(self.label)
vbox.addWidget(btn1)
vbox.addWidget(self.colorFrame)
vbox.addWidget(btn2)
self.setLayout(vbox)
self.setWindowTitle('QFont, QColor Dialog')
self.setGeometry(300, 300, 450, 300)
self.show()
def showFont(self):
font, flag = QFontDialog.getFont()
if flag:
self.label.setFont(font)
else:
self.label.setText("선택 되지 않았어요! 다시 한번 선택해주세요!")
def showColor(self):
color = QColorDialog.getColor()
if color.isValid():
self.colorFrame.setStyleSheet(f'background-color: {color.name()}')
else:
self.colorFrame.setStyleSheet("image : url(img/weniv-licat.png)")
프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 글꼴컬러설정다이얼로그()
프로그램무한반복.exec_()
HTML로 매핑을 하자면, form
에 input
을 만드는 것이라고 생각하시면 됩니다. 여기서는 font와 color를 선택할 수 있도록 해보겠습니다.
QColorDialog 공식 문서
QFontDialog
btn1 = QPushButton('폰트 선택', self)
btn1.clicked.connect(self.showFont)
color = QColor(Qt.black)
self.colorFrame = QFrame(self)
self.colorFrame.setStyleSheet(f'background-color: {color.name()};')
btn2 = QPushButton('색상 선택', self)
btn2.clicked.connect(self.showColor)
f''string
용법을 사용하지 못하므로, 아래와 같이 입력해주세요. self.colorFrame.setStyleSheet('background-color: %s' % color.name())
def showFont(self):
font, flag = QFontDialog.getFont()
if flag:
self.label.setFont(font)
else:
self.label.setText("선택 되지 않았어요! 다시 한번 선택해주세요!")
def showColor(self):
color = QColorDialog.getColor()
if color.isValid():
self.colorFrame.setStyleSheet(f'background-color: {color.name()}')
else:
self.colorFrame.setStyleSheet("image : url(img/weniv-licat.png)")