Qt6.5示例:QMainWindow集成QMenuBar菜单栏

2024-01-02 05:04

本文主要是介绍Qt6.5示例:QMainWindow集成QMenuBar菜单栏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注公众号(20YC编程),有免费C++视频课程哦!


-今日内容-

1 QMenuBar简介

QMenuBar是Qt框架中的一个菜单栏类,它提供了一个可以包含一个或多个QAction对象或级联的QMenu对象的菜单栏。

QMenuBar通常被放置在主窗口的标题栏下方,用于显示菜单。通过使用QMenuBar和QMenu类,可以创建和管理菜单,包括一级菜单和二级菜单。

2 如何使用QMenuBar

头文件:#include <QMenuBar>

cmake:find_package(Qt6 REQUIRED COMPONENTS Widgets)

              target_link_libraries(mytarget PRIVATE Qt6::Widgets)

qmake:QT += widgets

继承于:QWidget

3 示例说明

本示例演示了如何在QMainWindow主界面插入一个QMenuBar菜单栏控件。

同时还演示了如何退出QApplication应用程序,和QFileDialog文件对话框基本用法。

在这个例子中,我们首先创建一个名为IMainWindow的类,该类继承于QMainWindow。在IMainWindow的构造函数中,我们创建一个QMenuBar实例,并向其添加二个菜单项,同时添加不同Action动作。其中菜单项"打开(&O)"会打开一个文件对话框。

然后,我们使用setMenuBar()方法将菜单栏添加到主窗口。

最后,我们在main()函数中创建一个QApplication实例,并显示我们的窗口。当用户选择"退出(&X)"选项时,程序将退出。

4 示例执行效果

5 示例代码

  • imainwindow.h:

#ifndef IMAINWINDOW_H
#define IMAINWINDOW_H#include <QMainWindow>
#include <QMenuBar>class IMainWindow : public QMainWindow
{Q_OBJECTpublic:IMainWindow(QWidget *parent = nullptr);~IMainWindow();private slots:void slotMenuOpen();private:QMenuBar *m_pMenuBar{nullptr};};
#endif // IMAINWINDOW_H
  • imainwindow.cpp:

#include "imainwindow.h"
#include <QApplication>
#include <QStyle>
#include <QFileDialog>IMainWindow::IMainWindow(QWidget *parent): QMainWindow(parent)
{// 设置标题和调整大小this->setWindowTitle("欢迎关注公众号(20YC编程)");this->resize(680, 320);// 创建菜单栏m_pMenuBar = new QMenuBar(this);/******** 创建菜单和动作 ********/// 文件菜单QMenu *p_file_menu = m_pMenuBar->addMenu("文件(&F)");p_file_menu->addAction(QIcon(QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon)), "打开(&O)", this, &IMainWindow::slotMenuOpen);p_file_menu->addAction("新建(&N)");p_file_menu->addAction("保存(&S)");p_file_menu->addSeparator();p_file_menu->addAction("退出(&X)", qApp, &QApplication::quit);// 编辑菜单QMenu *p_edit_menu = m_pMenuBar->addMenu("编辑(&E)");p_edit_menu->addAction("复制");p_edit_menu->addAction("全选");// 将菜单樯添加到窗口this->setMenuBar(m_pMenuBar);
}IMainWindow::~IMainWindow()
{
}// 槽函数
void IMainWindow::slotMenuOpen()
{QFileDialog::getOpenFileName(this, "打开文件");
}
  • main.cpp:

#include "imainwindow.h"
#include <QApplition>int main(int argc, char *argv[])
{  QApplication a(argc, argv);  IMainWindow w;  w.show();  return a.exec();  
}

-【End】-

喜欢本文章,记得点赞、分享、关注哦~

这篇关于Qt6.5示例:QMainWindow集成QMenuBar菜单栏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/561404

相关文章

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java高效实现PowerPoint转PDF的示例详解

《Java高效实现PowerPoint转PDF的示例详解》在日常开发或办公场景中,经常需要将PowerPoint演示文稿(PPT/PPTX)转换为PDF,本文将介绍从基础转换到高级设置的多种用法,大家... 目录为什么要将 PowerPoint 转换为 PDF安装 Spire.Presentation fo

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Python屏幕抓取和录制的详细代码示例

《Python屏幕抓取和录制的详细代码示例》随着现代计算机性能的提高和网络速度的加快,越来越多的用户需要对他们的屏幕进行录制,:本文主要介绍Python屏幕抓取和录制的相关资料,需要的朋友可以参考... 目录一、常用 python 屏幕抓取库二、pyautogui 截屏示例三、mss 高性能截图四、Pill

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave