QT学记四:菜单栏
1.QT的菜单栏
在某些软件中,会有菜单栏这个选择,如QT软件中的菜单栏,如下图:

点击菜单栏中的文件就会显示如右:菜单栏应用场景:软件开发中的功
能选择比较多的时候。

2.菜单栏、菜单、菜单项
菜单栏:专门放菜单,相当一个专门放菜单的容器;
菜单:其下有很多选择项拱用户选择,即菜单项

3.菜单栏的类介绍
一个主窗口最多只有一个菜单栏, 位于主窗口顶部、 主窗口标题栏下面。
(1)创建菜单栏
通过 QMainWindow 类的 menuBar() 函数获取主窗口菜单栏指针 QMenuBar * menuBar() const ;QMenuBar就是一个菜单栏类,this->menuBar();就会获得该窗口的菜单栏这个对象。
(2)菜单栏创建菜单
要创建菜单, 需要调用 QMenu 的成员函数 addMenu 来添加菜单
QAction* addMenu(QMenu * menu)
QMenu* addMenu(const QString & title)
那么谁来添加?
前面的菜单栏:this->menubar();
即 QMenu * menu(菜单) = this->menuBar()->addMenu(“菜单名”);
(3)创建菜单项
Qt 并没有专门的菜单项类, 只是使用一个 QAction 类, 抽象出公共的动作。当我们把 QAction 对象添加到菜单, 就显示成一个菜单项。
QAction(const QString &text, QObject *parent = nullptr)
用户可以通过点击菜单项、 使用快捷键来激活这个动作。
即QAction *返回名 = new QAction(tr(“打开”),this);
这里一定要加this。这是因为要确定它的父对象。
(4)菜单添加菜单项
添加菜单项, 需调用 QMenu 的成员函数 addAction 来添加菜单项
QAction* addAction(const QString & text)
QAction* addAction(const QIcon & icon, const QString & text)
QAction* addAction(const QString & text, const QObject * receiver,
即如 menu(菜单).addAction(“菜单项名”);
7.程序设计之mainwindow.h头文件(最后面有代码块复制)
纯粹是使用QT中的类来创建的。

8.程序设计之mainwindow.cpp文件



9.在ui界面设计中设计菜单栏
在 qt 中, 如果想要使用菜单栏功能, 那么界面的基类要选择QMainWindow,不能选择 QWidget QDialog
实现菜单栏步骤如下:
第一步: 在 UI界面设计文件中, 直接双击菜单栏,输入完毕后,要按Enter回车确认才可以设置成功。
结果:

第二步: 设置菜单项(tuichu)中文名为“退出”,双击下面的红色框即可以打开菜单项的属性设置。在设置快捷键时,选中Shortcut,然后在键盘按你要设置的按键。

第三步:建立菜单项的点击动作的信号与槽。鼠标右键,选中“转到槽”,弹出选择信号,选择信号“triggered()”,此信号是一次性的,点击后,无法改变状态,要么是打开,要么是关闭。
“toggled()”是checkable按钮或是图标来使用的。打开、关闭两个状态之间转变。

第四步:编写退出槽函数的程序

结果:点击管理,再点击退出,会直接关闭当前窗口。

10.有提示的退出
想要有提示的退出,要重载一个函数:
函数中:
头文件:
11.有提示的退出之程序设计一

13.有提示的退出之程序设计二
在MainWindow.cpp文件中实现closeEvent函数

结果:点击yes才会退出,点击no不退出

视频结果显示:
可以在视频稿件中查找看到。
代码块:
mainwindow.h
mainwindow.cpp
谢谢阅读,觉得好,点个赞!

