Files
pythonguis-examples/pyqt5/demos/colorpicker/main.py
Martin Fitzpatrick b74592ea41 Add versions for PySide6, PyQt6 & PySide2.
Break down examples into module files to make easier to read. Use
full-definitions on Enums (PyQt6 compatible, better documenting).
Add fixes for Qt6 versions & some general bugfixes.
2024-02-19 13:36:32 +01:00

73 lines
1.4 KiB
Python

import os
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import (
QAction,
QApplication,
QColorDialog,
QMenu,
QSystemTrayIcon,
)
app = QApplication(sys.argv)
app.setQuitOnLastWindowClosed(False)
# Create the icon
icon = QIcon(os.path.join("images", "color.png"))
clipboard = QApplication.clipboard()
dialog = QColorDialog()
def copy_color_hex():
if dialog.exec_():
color = dialog.currentColor()
clipboard.setText(color.name())
def copy_color_rgb():
if dialog.exec_():
color = dialog.currentColor()
clipboard.setText(
"rgb(%d, %d, %d)" % (color.red(), color.green(), color.blue())
)
def copy_color_hsv():
if dialog.exec_():
color = dialog.currentColor()
clipboard.setText(
"hsv(%d, %d, %d)" % (color.hue(), color.saturation(), color.value())
)
# Create the tray
tray = QSystemTrayIcon()
tray.setIcon(icon)
tray.setVisible(True)
# Create the menu
menu = QMenu()
action1 = QAction("Hex")
action1.triggered.connect(copy_color_hex)
menu.addAction(action1)
action2 = QAction("RGB")
action2.triggered.connect(copy_color_rgb)
menu.addAction(action2)
action3 = QAction("HSV")
action3.triggered.connect(copy_color_hsv)
menu.addAction(action3)
action4 = QAction("Exit")
action4.triggered.connect(app.quit)
menu.addAction(action4)
# Add the menu to the tray
tray.setContextMenu(menu)
app.exec_()