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.
73 lines
1.4 KiB
Python
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_()
|