PyQt - 将QAction连接到函数

时间:2017-05-31 09:47:39

标签: python pyqt pyqt5

我正在使用TrayIcon,我添加了一个“退出”QAction,现在,我想在TrayIcon菜单中单击Exit时执行某个功能。这是我的代码:

w = Workbook.getWorkbook(inputWorkbook);
    Sheet sheet = w.getSheet(0);
    for(int i = 1;i<sheet.getRows(); i++){ 
                     Cell currentCell = sheet.getCell(0,i);
                     Cell nextCell = sheet.getCell(0,(i+1));
                     if(currentCell.getContents().equals(nextCell.getContents())){ //If cell is the same value as the one in the row below it
                         //do action 1
                     }
                     else if(!currentCell.getContents().equals(nextCell.getContents())){//If cell has a different value as the one in the row below it
                     //do action 2
                     }
                 }

2 个答案:

答案 0 :(得分:3)

这就是我根据您的代码将菜单中的图标连接到功能的方式:

self.menu = QMenu()
self.action = QAction("Exit")
self.menu.addAction(self.action)
self.action.triggered.connect(self.my_function)

函数self.my_function随后会执行您想要的任何操作。

答案 1 :(得分:0)

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)

这显示了它在MainWindow类中的工作原理。 PS。单击操作时,需要实现要调用的方法。在我的例子中,他们被称为(self.handleShowAction,self.handleTrayIconButton和self.close_application)。