前言
在使用Qt开发MainWindow界面是,想在MenuBar下创建一个Qmenu类的对象,直接点击Qmenu类即可实现退出程序的功能
如何实现?
Qmenu类下有一个信号为 aboutToShow,该信号在Qmenu展开时触发。
思路:可以创建一个Qmenu,下面不放置任何QAction,使用connect函数将Qmenu的aboutToShow信号和QApplication的quit槽进行连接。
首先在.ui文件下添加一个名为menu的对象,属于Qmenu类
然后在.cpp文件下,MainWindow构造函数里添加connect函数
代码如下:
//运行环境:Qt 6.3.0
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->menu,SIGNAL(aboutToShow()),qApp,SLOT(quit())); //connect连接Qmenu的aboutToShow()信号与qApp的quit()槽函数
}
细节解释
1、本例中‘qApp’是一个全局指针,其指向QApplication。
2、本例中使用的QApplication的槽函数quit(),也可以用槽函数exit(int)来代替。
3、测试直接在.ui文件的信号槽编辑栏里创建Qmenu的aboutToShow信号和QApplication的quit槽的连接,单击退出按钮无法实现退出功能(原因未知)。