前面几节学习使用的 Qt 项目都是以 QWidget 为基类的,QWidget 是所有控件的基类,以 QWidget 为基类创建的项目是一个空窗口。

如果想创建一个包含菜单栏、工具栏、状态栏的窗口,可以在创建项目时,将基类改为 QMainWindow,此处先不勾选“创建界面”,因为要先用代码来实现菜单栏的创建过程。如下所示:

从帮助文档可以看到,QMainWindow 下面有很多公共方法,其中 menuBar()  方法就是用于创建菜单栏对象,如下:

通过代码创建菜单栏如下所示:

MyMainWindow::MyMainWindow(QWidget *parent): QMainWindow(parent)
{this->resize(400, 300);// 创建菜单栏对象QMenuBar *mbar = this->menuBar();// 添加菜单QMenu *fileMenu = mbar->addMenu("文件(F)");QMenu *editMenu = mbar->addMenu("编辑(E)");// 添加菜单项QAction *newAction = fileMenu->addAction("新建(N)");// 为“新建”菜单项绑定槽函数,点击新建的时候,输出一句话connect(newAction, &QAction::triggered, [=](){qDebug() << "新建文件";   });// 添加分割线fileMenu->addSeparator();// 添加菜单项QAction *openAction = fileMenu->addAction("打开(O)");
}

如果在创建 Qt 项目时,勾选了“创建界面”,如下:

那么就可以在界面设计器上快速的编辑菜单栏:

注意:在编辑菜单项名称的时候,发现不能输入中文,此时,我们可以先给菜单项输入一个英文,如下:

然后,我们就可以在属性视图下看到这个菜单项对象了:

注意:有一个属性 objectName,其值(actionNew)就是根据我们在菜单项中输入的名称(new)自动生成的;假如,允许我们在菜单项中输入中文,比如我写个“新建”,那么 objectName 的值就会变成 “action新建”,这显然是不合理的;

如果需要在菜单项上显示中文,那么可以修改其 text 属性;

Qt学习笔记(五):菜单栏相关推荐

  1. QT学习笔记--QMainWindow菜单栏、工具栏

    QMainWindow是个为用户提供主窗口程序的类,包含一个菜单栏.多个工具栏.多个铆接不见.一个状态栏及一个中心部件,是许多应用程序的基础,如文本编辑器,图片编辑器... 菜单栏 菜单栏例如: 程序 ...

  2. QT学习笔记(五):Qt5的8种标准对话框示例

    QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...

  3. Qt学习笔记之MySQL数据库

    一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...

  4. QT学习笔记(六):Qt5主窗口框架示例

    QT学习笔记(五):Qt5主窗口框架代码示例 一.添加编辑菜单:并在下拉菜单和工具栏中添加"打开文件"动作菜单 #include <QToolButton> #incl ...

  5. Qt 学习笔记(5)绘图 五子棋游戏

    在上一篇博客C++ Qt学习笔记(4)绘图中介绍了Qt中的绘图方法,基于上一篇的博客的知识,使用QPainter设计一个五子棋的棋盘,后续会完成五子棋的游戏设计. 1. 棋盘的设计 首先需要绘制棋盘的 ...

  6. QT学习笔记(摘抄)

    QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...

  7. QT学习笔记之QMainWindow

    QT学习笔记之QMainWindow 菜单栏 工具栏 状态栏 中心窗口部件 铆接部件(浮动窗口) 菜单栏 菜单栏最多只有一个 //菜单栏创建QMenuBar* bar = menuBar();//将菜 ...

  8. Qt学习笔记,Qt国际化

    Qt学习笔记,Qt国际化 Qt国际化步骤: 第一步:设置.pro文件,加入TRANSLATIONS为国际化做准备 TRANSLATIONS = language/language_en.ts\     ...

  9. Qt学习笔记,Qt程序架构设计要旨

    Qt学习笔记,Qt程序架构设计要旨 时间过得很快,转眼学习Qt已经有一个多月了,对Qt的学习也在不断的深入中.自己手下的code也很多了,不过不得不说,还有很多的部分没有接触过,比如网络编程,2D,3 ...

最新文章

  1. Linux常用命令及技巧2
  2. 范凯:一个二次创业者的失败
  3. mysql 终止 存储过程
  4. nginx安装编译,动态添加模块及其各模块的作用
  5. 【WebView】warnning:所有WebView方法必须在主线程调用(4.0) 所有WebView方法必须在同一线程调用(4.4)
  6. 讲讲volatile的作用
  7. c语言两数相加vs,两数相加(C语言)
  8. 刚刚,四位平民上天了!
  9. 初试 Git hooks 自动部署
  10. SQL——连接查询、聚合函数、开窗函数、分组功能、联合查询、子查询
  11. 线程阻塞问题-功能:环信登录失败后自动登录5次
  12. Java 连接sql server
  13. vs2013 mfc资源在另一个编辑器中打开
  14. ansys17.0安装教程
  15. 兼容PC、移动端(微信公众号) vue全屏滚动组件 支持vue2和vue3
  16. 静态树表的查找(最优查找树和次优查找树)
  17. 计算机组成原理选择题题库
  18. 统计笔记3:statistical inference
  19. 7-3 计算平均成绩 (15分)
  20. 联诚发龙显P1.25系列LED大屏亮相宝安区区政府会议室

热门文章

  1. C++ 在图片上打印文字并保存图片
  2. Vue项目中常见问题(55)提交订单、获取订单号、展示支付信息
  3. Network 【HTTPS请求/AFN】
  4. 中国大学MOOC大学生心理健康试题及答案
  5. 使用JMETER进行REST API测试(分步指南)
  6. Linux 下如何添加一个普通用户,并给予用户root权限
  7. 每天撸拼多多纸巾(非广告)
  8. iOS实现服务器原生推送
  9. 地理坐标系与投影坐标系的区别(转)
  10. 转:成功的背后!(给所有IT人)