如何给QMenuBar按钮一个动作?

时间:2014-06-17 16:04:39

标签: python qt qt4 pyqt pyqt4

我使用PyQt / Qt4 / QtDesigner开发GUI。它包括一个带按钮的MenuBar。例如,File下拉显示Exit。我很难理解如何为这些按钮添加动作。它与QPushButtons相同吗?

2 个答案:

答案 0 :(得分:0)

您无需添加任何内容。菜单项在触发时会发出triggered()信号。 Qt有一个自动插槽 - 在C ++中,MainGui.h你会有

class MainGui
{
   ...
   private slots:
      void on_actionExit_triggered(); //For command Exit
      void on_actionSave_Data_triggered(); //For command Save Data
};

然后你只需按照自己的意愿编写回调。我认为Python中的结构非常相似。

编辑:这是.cpp文件:

void MainGui::on_actionExit_triggered()
{
   //Do whatever you like here
}

答案 1 :(得分:0)

QPushButtons几乎相同。点击按钮,触发菜单操作。但是,您只需连接到相应的插槽即可。

以下是退出功能的简单示例:

class MainWindow(QtGui.QMainWindow):

    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        # menu bar
        self.menu_bar = QtGui.QMenuBar(self)

        # file menu
        self.menu_file = QtGui.QMenu(self.menu_bar)
        self.menu_file.setTitle('File')
        self.menu_bar.addAction(self.menu_file.menuAction())

        # exit action
        self.menu_action_exit = QtGui.QAction(self)
        self.menu_action_exit.setText("Exit")
        self.menu_action_exit.triggered.connect(self.close)