我正在使用TrayIcon,添加了“ Exit” QAction,现在,我想在TrayIcon菜单中单击“退出”时执行某些功能。这是我的代码:
class TrayIcon(QSystemTrayIcon):
"""
Displays a system tray icon
"""
def __init__(self, interface: Interface) -> None:
"""
Constructor
:param interface: Interface to show when the tray icon is clicked
"""
super().__init__(QIcon(resource_filename("ezstorage.resources.img.tray_icon", "folder.png")))
self.interface = interface
self.setVisible(True)
self.show()
self.activated.connect(self.clicked)
menu = QMenu()
action = QAction("Exit")
menu.addAction(action)
self.setContextMenu(menu)
Run Code Online (Sandbox Code Playgroud)
小智 5
这是我根据您的代码将菜单中的图标连接到功能的方式:
self.menu = QMenu()
self.action = QAction("Exit")
self.menu.addAction(self.action)
self.action.triggered.connect(self.my_function)
Run Code Online (Sandbox Code Playgroud)
self.my_function然后,该函数将执行您想要的任何操作。
小智 5
def setupTrayIcon(self, MainWindow):
self.tray_icon = QSystemTrayIcon()
self.tray_icon.setIcon(QIcon("logo.png"))
self.tray_icon.setToolTip("System Tray Management")
self.tray_icon.show()
self.tray_icon.tray_menu = QtWidgets.QMenu()
def setupActions(self,MainWindow):
self.tray_icon.show_action = QtWidgets.QAction("Show", MainWindow)
self.tray_icon.quit_action = QtWidgets.QAction("Exit", MainWindow)
self.tray_icon.hide_action = QtWidgets.QAction("Hide", MainWindow)
self.tray_icon.tray_menu.addAction(self.tray_icon.show_action)
self.tray_icon.tray_menu.addAction(self.tray_icon.hide_action)
self.tray_icon.tray_menu.addAction(self.tray_icon.quit_action)
self.tray_icon.setContextMenu(self.tray_icon.tray_menu)
def ConnectAction(self, MainWindow):
self.tray_icon.show_action.triggered.connect(self.handleShowAction)
self.tray_icon.hide_action.triggered.connect(self.handleTrayIconButton)
self.tray_icon.quit_action.triggered.connect(self.close_application)
Run Code Online (Sandbox Code Playgroud)
这显示了它在 MainWindow 类中的工作原理。诗。您需要实现单击操作时要调用的方法。在我的例子中,它们被称为(self.handleShowAction、self.handleTrayIconButton 和 self.close_application)。
| 归档时间: |
|
| 查看次数: |
14606 次 |
| 最近记录: |