pyqt-color-picker
PyQt color picker dialog which contains color picker widget.
You can either use dialog or widget.
Requirements
PyQt5 >= 5.8
Setup
python -m pip install pyqt-color-picker
Class, Method Overview
ColorPickerDialog
-
ColorPickerDialog(color=QColor(255, 255, 255), orientation='horizontal')
-
color
argument's type can beQColor
orstr
. -
orientation
argument decides the overall layout direction of the dialog. There are two values.'horizontal'
,'vertical'
. See layout preview below.
-
-
getColor() -> QColor
- get the color.
If you only want to use this as a part of window(not as whole dialog), use ColorPickerWidget(color=QColor(255, 255, 255), orientation='horizontal')
. See the example below.
ColorPickerWidget
-
colorChanged(color: QColor)
- signal. After color being changed, this will be emitted. -
getCurrentColor() -> QColor
- get the current color.
Layout type
Horizontal
Vertical
Usage
Dialog
Code Sample
dialog = ColorPickerDialog()
reply = dialog.exec()
if reply == QDialog.Accepted:
color = dialog.getColor() # return type is QColor
//..
Result
Using as a part of window
Code Sample
from PyQt5.QtWidgets import QMainWindow, QApplication, QHBoxLayout, QWidget, QTextEdit
from pyqt_color_picker import ColorPickerWidget
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.__initUi()
def __initUi(self):
self.__te = QTextEdit()
self.__colorPicker = ColorPickerWidget(orientation='vertical')
self.__colorPicker.colorChanged.connect(self.colorChanged) # when color has changed, call the colorChanged function
lay = QHBoxLayout()
lay.addWidget(self.__te)
lay.addWidget(self.__colorPicker)
mainWidget = QWidget()
mainWidget.setLayout(lay)
self.setCentralWidget(mainWidget)
def colorChanged(self, color):
self.__te.setStyleSheet(f'QTextEdit {{ color: {color.name()} }}')
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
ex = Window()
ex.show()
sys.exit(app.exec_())