专栏/QT学记四:菜单栏

QT学记四:菜单栏

2021年11月28日 05:59--浏览 · --喜欢 · --评论
粉丝:91文章:25

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


谢谢阅读,觉得好,点个赞!



投诉或建议