You can read documentation from the official website.
This example used a tray icon with actions for each type of code color.
The code of color is put into clipboard area and print on the shell.
I use two ways to get the code of color:
- parse the result of currentColor depends by type of color codel;
- get the code of color by a special function from QColorDialog;
Let's see the source code:
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
# create the application
app = QApplication([])
app.setQuitOnLastWindowClosed(False)
# get the icon file
icon = QIcon("icon.png")
# create clipboard
clipboard = QApplication.clipboard()
# create dialog color
dialog = QColorDialog()
# create functions to get parsing color
def get_color_hex():
if dialog.exec_():
color = dialog.currentColor()
clipboard.setText(color.name())
print(clipboard.text())
def get_color_rgb():
if dialog.exec_():
color = dialog.currentColor()
clipboard.setText("rgb(%d, %d, %d)" % (
color.red(), color.green(), color.blue()
))
print(clipboard.text())
def get_color_hsv():
if dialog.exec_():
color = dialog.currentColor()
clipboard.setText("hsv(%d, %d, %d)" % (
color.hue(), color.saturation(), color.value()
))
print(clipboard.text())
# create function to use getCmyk
def get_color_getCmyk():
if dialog.exec_():
color = dialog.currentColor()
clipboard.setText("Cmyk(%d, %d, %d, %d, %d)" % (
color.getCmyk()
))
print(clipboard.text())
# create the tray icon application
tray = QSystemTrayIcon()
tray.setIcon(icon)
tray.setVisible(True)
# create the menu and add actions
menu = QMenu()
action1 = QAction("Hex")
action1.triggered.connect(get_color_hex)
menu.addAction(action1)
action2 = QAction("RGB")
action2.triggered.connect(get_color_rgb)
menu.addAction(action2)
action3 = QAction("HSV")
action3.triggered.connect(get_color_hsv)
menu.addAction(action3)
action4 = QAction("Cmyk")
action4.triggered.connect(get_color_getCmyk)
menu.addAction(action4)
action5 =QAction("Exit")
action5.triggered.connect(exit)
menu.addAction(action5)
# add the menu to the tray icon application
tray.setContextMenu(menu)
app.exec_()