mardi 24 juin 2014

Handlers for menu in tray


Vote count:

0




I'm trying to write simplest app on PyQt, but get a little issue: I dont understand why after add handler for "exit" panel, handler didnt work? How i can fix this, than when click on "Exit", my app will be closed?



#! /usr/bin/env python
from PyQt4 import QtGui, QtCore

class RightClickMenu(QtGui.QMenu):
def __init__(self, parent=None):
iconMenu = QtGui.QMenu.__init__(self, "Edit", parent)
icon = QtGui.QIcon.fromTheme("edit-cut")
self.addAction(QtGui.QAction(icon, "&Cut", self))

icon = QtGui.QIcon.fromTheme("edit-copy")
self.addAction(QtGui.QAction(icon, "Copy (&X)", self))

icon = QtGui.QIcon.fromTheme("edit-paste")
self.addAction(QtGui.QAction(icon, "&Paste", self))

icon = QtGui.QIcon.fromTheme("edit-paste")
self.addAction(QtGui.QAction(icon, "&Exit", self))
self.connect(self, QtCore.SIGNAL('clicked()'), self.exit)

def exit(self):
QtCore.QCoreApplication.instance().quit()

class LeftClickMenu(QtGui.QMenu):
def __init__(self, parent=None):
QtGui.QMenu.__init__(self, "File", parent)

icon = QtGui.QIcon.fromTheme("document-new")
self.addAction(QtGui.QAction(icon, "&New", self))

icon = QtGui.QIcon.fromTheme("document-open")
self.addAction(QtGui.QAction(icon, "&Open", self))

icon = QtGui.QIcon.fromTheme("document-save")
self.addAction(QtGui.QAction(icon, "&Save", self))

class SystemTrayIcon(QtGui.QSystemTrayIcon):
def __init__(self, parent=None):
QtGui.QSystemTrayIcon.__init__(self, parent)
self.setIcon(QtGui.QIcon("tray.png"))

self.right_menu = RightClickMenu()
self.setContextMenu(self.right_menu)

self.left_menu = LeftClickMenu()
self.activated.connect(self.click_trap)

def click_trap(self, value):
if value == self.Trigger: #left click!
self.left_menu.exec_(QtGui.QCursor.pos())

def welcome(self):
self.showMessage("Hello", "I should be aware of both buttons")

def show(self):
QtGui.QSystemTrayIcon.show(self)
QtCore.QTimer.singleShot(100, self.welcome)


def main():
app = QtGui.QApplication([])
tray = SystemTrayIcon()
tray.show()
app.exec_()

if __name__ == '__main__':
main()


asked 36 secs ago

Relrin

104





Aucun commentaire:

Enregistrer un commentaire