如何给QMenuBar按钮添加动作?
我正在用PyQt/Qt4/QtDesigner开发一个图形用户界面(GUI)。这个界面里有一个菜单栏,上面有一些按钮。比如说,点击File
这个按钮会展开显示Exit
这个选项。我现在有点困惑,不知道怎么给这些按钮添加功能。这个过程和给QPushButton按钮添加功能是一样的吗?
2 个回答
-1
这和 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)
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
}