from PyQt5.QtWidgets import QApplication,QWidget,QLineEdit,QLabel,QSlider
from PyQt5.QtGui import QBrush , QColor,QPainter
from PyQt5.QtCore import pyqtSignal,QPoint,QRect,Qt
class Ui_Form(QWidget):
colorchanged = pyqtSignal( QColor )
def __init__(self,parent ):
super().__init__(parent)
self.resize(267, 83)
self.lineEdit = QLineEdit(self)
self.lineEdit.setGeometry(QRect(42, 20, 31, 20))
self.lineEdit.setAlignment(Qt.AlignCenter)
self.lineEdit.setObjectName("lineEdit")
self.label = QLabel(self)
self.label.setGeometry(QRect(45, 0, 21, 16))
self.label.setObjectName("label")
self.lineEdit_2 = QLineEdit(self)
self.lineEdit_2.setGeometry(QRect(42, 40, 31, 20))
self.lineEdit_2.setAlignment(Qt.AlignCenter)
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QLineEdit(self)
self.lineEdit_3.setGeometry(QRect(42, 60, 31, 20))
self.lineEdit_3.setAlignment(Qt.AlignCenter)
self.lineEdit_3.setObjectName("lineEdit_3")
self.hSlider = QSlider(self)
self.hSlider.setGeometry(QRect(80, 10, 160, 16))
self.hSlider.setMaximum(359)
self.hSlider.setOrientation(Qt.Horizontal)
self.hSlider.setObjectName("hSlider")
self.hSlider_2 = QSlider(self)
self.hSlider_2.setGeometry(QRect(80, 35, 160, 16))
self.hSlider_2.setMaximum(255)
self.hSlider_2.setOrientation(Qt.Horizontal)
self.hSlider_2.setObjectName("hSlider_2")
self.hSlider_3 = QSlider(self)
self.hSlider_3.setGeometry(QRect(80, 60, 160, 16))
self.hSlider_3.setMaximum(255)
self.hSlider_3.setOrientation(Qt.Horizontal)
self.hSlider_3.setObjectName("hSlider_3")
self.label_2 = QLabel(self)
self.label_2.setGeometry(QRect(245, 10, 21, 16))
self.label_2.setAlignment(Qt.AlignCenter)
self.label_2.setObjectName("label_2")
self.label_3 = QLabel(self)
self.label_3.setGeometry(QRect(245, 35, 21, 16))
self.label_3.setAlignment(Qt.AlignCenter)
self.label_3.setObjectName("label_3")
self.label_4 = QLabel(self)
self.label_4.setGeometry(QRect(245, 60, 21, 16))
self.label_4.setAlignment(Qt.AlignCenter)
self.label_4.setObjectName("label_4")
self.retranslateUi()
self.lineEdit.textEdited['QString'].connect(self.getRGB)
self.lineEdit_2.textEdited['QString'].connect(self.getRGB)
self.lineEdit_3.textEdited['QString'].connect(self.getRGB)
self.hSlider.valueChanged['int'].connect(self.getHSV)
self.hSlider_2.valueChanged['int'].connect(self.getHSV)
self.hSlider_3.valueChanged['int'].connect(self.getHSV)
self.color=QColor(255,255,255)
self.setHSV()
def retranslateUi(self):
_translate = QApplication.translate
self.setWindowTitle(_translate("Form", "Form"))
self.lineEdit.setText(_translate("Form", "255"))
self.label.setText(_translate("Form", "RGB"))
self.lineEdit_2.setText(_translate("Form", "255"))
self.lineEdit_3.setText(_translate("Form", "255"))
self.label_2.setText(_translate("Form", "359"))
self.label_3.setText(_translate("Form", "255"))
self.label_4.setText(_translate("Form", "255"))
def setcolor(self,c):
self.color=c
self.update()
self.setRGB()
self.setHSV()
def setRGB(self):
self.lineEdit.setText( str(self.color.red()))
self.lineEdit_2.setText( str(self.color.green()))
self.lineEdit_3.setText( str(self.color.blue()))
def getRGB(self):
self.color = QColor( int(self.lineEdit.text()),int(self.lineEdit_2.text()),int(self.lineEdit_3.text()))
self.setHSV()
def setHSV(self):
h,s,v,a = self.color.getHsv()
self.hSlider.setValue( h)
self.hSlider_2.setValue( s)
self.hSlider_3.setValue( v)
self.label_2.setText(str(h))
self.label_3.setText(str(s))
self.label_4.setText(str(v))
def setHSV2(self):
h,s,v,a = self.color.getHsv()
self.label_2.setText(str(h))
self.label_3.setText(str(s))
self.label_4.setText(str(v))
def getHSV(self):
self.color= QColor( QColor.fromHsv( self.hSlider.value() , self.hSlider_2.value() ,self.hSlider_3.value() ))
self.setRGB()
self.setHSV2()
self.update()
self.colorchanged.emit(self.color)
def paintEvent(self,e):
painter= QPainter()
painter.begin(self)
painter.setBrush( self.color )
painter.drawRect( QRect( QPoint(0,0),QPoint(40,80) ))
painter.end()