More SystemTray support
This commit is contained in:
parent
f67c5a8a47
commit
8dacad01d1
|
@ -2656,6 +2656,14 @@ class ErrorElement(Element):
|
||||||
# ------------------------------------------------------------------------- #
|
# ------------------------------------------------------------------------- #
|
||||||
class SystemTray:
|
class SystemTray:
|
||||||
def __init__(self, title, filename=None, menu=None, data=None, data_base64=None):
|
def __init__(self, title, filename=None, menu=None, data=None, data_base64=None):
|
||||||
|
'''
|
||||||
|
SystemTray - create an icon in the system tray
|
||||||
|
:param title:
|
||||||
|
:param filename:
|
||||||
|
:param menu:
|
||||||
|
:param data:
|
||||||
|
:param data_base64:
|
||||||
|
'''
|
||||||
self.Title = title
|
self.Title = title
|
||||||
self.Menu = menu
|
self.Menu = menu
|
||||||
self.TrayIcon = None
|
self.TrayIcon = None
|
||||||
|
@ -2700,6 +2708,11 @@ class SystemTray:
|
||||||
|
|
||||||
|
|
||||||
def Read(self, timeout=None):
|
def Read(self, timeout=None):
|
||||||
|
'''
|
||||||
|
Reads the context menu
|
||||||
|
:param timeout: Optional. Any value other than None indicates a non-blocking read
|
||||||
|
:return:
|
||||||
|
'''
|
||||||
if not self.Shown:
|
if not self.Shown:
|
||||||
self.Shown = True
|
self.Shown = True
|
||||||
self.TrayIcon.show()
|
self.TrayIcon.show()
|
||||||
|
@ -2714,9 +2727,46 @@ class SystemTray:
|
||||||
self.MenuItemChosen = None
|
self.MenuItemChosen = None
|
||||||
return item
|
return item
|
||||||
|
|
||||||
|
def Hide(self):
|
||||||
|
self.TrayIcon.hide()
|
||||||
|
|
||||||
|
def UnHide(self):
|
||||||
|
self.TrayIcon.show()
|
||||||
|
|
||||||
|
def ShowMessage(self, title, message, filename=None, data=None, data_base64=None, time=10000):
|
||||||
|
'''
|
||||||
|
Shows a balloon above icon in system tray
|
||||||
|
:param title: Title shown in balloon
|
||||||
|
:param message: Message to be displayed
|
||||||
|
:param filename: Optional icon filename
|
||||||
|
:param data: Optional in-ram icon
|
||||||
|
:param data_base64: Optional base64 icon
|
||||||
|
:param time: How long to display message in milliseconds
|
||||||
|
:return:
|
||||||
|
'''
|
||||||
|
qicon = None
|
||||||
|
if filename is not None:
|
||||||
|
qicon = QIcon(filename)
|
||||||
|
elif data is not None:
|
||||||
|
ba = QtCore.QByteArray.fromRawData(data)
|
||||||
|
pixmap = QtGui.QPixmap()
|
||||||
|
pixmap.loadFromData(ba)
|
||||||
|
qicon = QIcon(pixmap)
|
||||||
|
elif data_base64 is not None:
|
||||||
|
ba = QtCore.QByteArray.fromBase64(data_base64)
|
||||||
|
pixmap = QtGui.QPixmap()
|
||||||
|
pixmap.loadFromData(ba)
|
||||||
|
qicon = QIcon(pixmap)
|
||||||
|
|
||||||
|
if qicon is not None:
|
||||||
|
self.TrayIcon.showMessage(title, message, qicon, time)
|
||||||
|
else:
|
||||||
|
self.TrayIcon.showMessage(title, message)
|
||||||
|
|
||||||
|
return self
|
||||||
|
|
||||||
def Close(self):
|
def Close(self):
|
||||||
self.App.__del__()
|
self.App.quit()
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------- #
|
# ------------------------------------------------------------------------- #
|
||||||
|
|
Loading…
Reference in New Issue