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
Aucun commentaire:
Enregistrer un commentaire