【Qt】05-菜单栏

news2025/1/23 4:45:16

做菜单

  • 前言
  • 一、创建文件
  • 二、菜单栏 QMenuBar
    • 2.1 示例代码
    • 2.2 运行结果
  • 三、工具栏 QToolBar
    • 3.1 运行代码
    • 3.2 结果分析
  • 四、状态栏 QStatusBar
    • 4.1 运行代码
    • 4.2 运行结果
  • 五、文本编辑框 QTextEdit
    • 5.1 运行代码
    • 5.2 运行结果
  • 六、浮动窗口 addDockWidget
    • 6.1 运行代码
    • 6.2 运行结果
  • 总结


前言


一、创建文件

这里和之前一样。
在这里插入图片描述
主要是后面选择,带菜单栏的窗口(PC端常用)QMainWindow在这里插入图片描述
最终在这里插入图片描述
主要是菜单栏、工具栏、状态栏、核心控件(文本编辑框)、浮动窗口

看的QMainWindow的public-functions栏可以看共有函数,是他提供的api。

二、菜单栏 QMenuBar

需要包含头文件

#include <QMenuBar>
#include <QMenu>

创建菜单
在这里插入图片描述

2.1 示例代码

过程全在注释里了,接下来是mymainwindow.cpp的内容

#include "mymainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QToolBar>
#include <QPushButton>

myMainWindow::myMainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QMenuBar *mBar = menuBar();                  // 添加菜单栏
    QMenu *pFile = mBar->addMenu("文件");         // 菜单内容
    QAction *pNew = pFile->addAction("新建");     // 菜单项

    connect(pNew,&QAction::triggered,
            [=]()
            {
                qDebug()<<"新建被按下";
            }
            );
    pFile->addSeparator();                      // 增加分割线
    QAction *pOpen= pFile->addAction("打开");
}

myMainWindow::~myMainWindow()
{

}

2.2 运行结果

运行结果不展示了,放分析助于理解吧。
在这里插入图片描述

三、工具栏 QToolBar

在上一个的基础上增加,这一部分。

3.1 运行代码

在这里插入图片描述

3.2 结果分析

在这里插入图片描述

四、状态栏 QStatusBar

4.1 运行代码

在这里插入图片描述

4.2 运行结果

在这里插入图片描述

五、文本编辑框 QTextEdit

5.1 运行代码

在这里插入图片描述

5.2 运行结果

在这里插入图片描述

六、浮动窗口 addDockWidget

像这种有两种方法的,需要依赖帮助文档。
在这里插入图片描述
但是摁F1,却显示不出内容
在这里插入图片描述
需要将参数补齐,再进行跳转。

在这里插入图片描述
有点看不懂洋文。。。。。

QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)
  1. 第一个参数通常是指定停靠部件的位置,是一个枚举值,例如在 Qt 中,有
    Qt::LeftDockWidgetArea、Qt::RightDockWidgetArea、Qt::TopDockWidgetArea、Qt::BottomDockWidgetArea
    等,用来确定该停靠部件最初应该停靠在主窗口的哪个区域。
  2. 第二个参数是要添加的实际停靠部件的对象指针

6.1 运行代码

在这里插入图片描述

6.2 运行结果

在这里插入图片描述
在这里插入图片描述


总结

本篇总结放完整代码

#include "mymainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QTextEdit>
#include <QDockWidget>

myMainWindow::myMainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QMenuBar *mBar = menuBar();                  // 添加菜单栏
    QMenu *pFile = mBar->addMenu("文件");         // 菜单内容
    QAction *pNew = pFile->addAction("新建");     // 菜单项

    connect(pNew,&QAction::triggered,
            [=]()
            {
                qDebug()<<"新建被按下";
            }
            );
    pFile->addSeparator();                      // 增加分割线
    QAction *pOpen= pFile->addAction("打开");

    // 工具栏项,菜单的快捷方式
    QToolBar *toolBar = addToolBar("toolBar");
    toolBar->addAction(pNew);           // 工具栏增加快捷方式

    QPushButton *button1 = new QPushButton(this);
    button1->setText("OHO");            // 之后可以用图片图标,目前只有颜表情代替
    // 添加小控件
    toolBar->addWidget(button1);
    connect(button1,&QPushButton::clicked,
            [=]()
            {
                button1->setText("123");
            }
            );

    // 状态栏
    QStatusBar *sBar = statusBar();
    QLabel *label = new QLabel(this);
    label->setText("Normal");
    sBar->addWidget(label);
    sBar->addWidget(new QLabel("status 2",this));   // addWidget从左往右添加
    sBar->addPermanentWidget(new QLabel("status 3",this)); // 从左往右添加

    // 核心控件--文本编辑框
    QTextEdit *textEdit = new QTextEdit(this);
    setCentralWidget(textEdit);
    // 浮动窗口
    QDockWidget *dock = new QDockWidget(this);
    addDockWidget(Qt::LeftDockWidgetArea,dock);  // 初始状态,后面是可以继续浮动的
    QTextEdit *textEdit_1 = new QTextEdit(this);    // 为浮动窗口增加一下东西
    dock->setWidget(textEdit_1);
}

myMainWindow::~myMainWindow()
{

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2280700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

细说STM32F407单片机电源低功耗StandbyMode待机模式及应用示例

目录 一、待机模式基础知识 1、进入待机模式 2、待机模式的状态 3、退出待机模式 二、待机模式应用示例 1、示例功能和CubeMX项目设置 &#xff08;1&#xff09; 时钟 &#xff08;2&#xff09; DEBUG、LED1、KeyRight、USART6、CodeGenerator &#xff08;3&#x…

中国综合算力指数(2024年)报告汇总PDF洞察(附原数据表)

原文链接&#xff1a; https://tecdat.cn/?p39061 在全球算力因数字化技术发展而竞争加剧&#xff0c;我国积极推进算力发展并将综合算力作为数字经济核心驱动力的背景下&#xff0c;该报告对我国综合算力进行研究。 中国算力大会发布的《中国综合算力指数&#xff08;2024年…

w-form-select.vue(自定义下拉框组件)(与后端字段直接相关性)

文章目录 1、w-form-select.vue 组件中每个属性的含义2、实例3、源代码 1、w-form-select.vue 组件中每个属性的含义 好的&#xff0c;我们来详细解释 w-form-select.vue 组件中每个属性的含义&#xff0c;并用表格列出它们是否与后端字段直接相关&#xff1a; 属性解释表格&…

前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!

引言 时光飞逝&#xff0c;2024年已经来临&#xff0c;回顾过去一年&#xff0c;科技的迅猛进步简直让人目不暇接。 在人工智能&#xff08;AI&#xff09;越来越强大的今天&#xff0c;我们不再停留在幻想阶段&#xff0c;量子计算的雏形开始展示它的无穷潜力&#xff0c;Web …

消息队列篇--原理篇--RabbmitMQ(Exchange,消息转换器、docker部署,绑定和确认机制等)

RabbitMQ是一个基于AMQP协议的消息队列系统&#xff0c;支持多种消息传递模式&#xff0c;包括点对点&#xff08;P2P&#xff09;、发布/订阅&#xff08;Pub/Sub&#xff09;和路由模式。RabbitMQ 的设计目标是提供高可用性、可扩展性和可靠性&#xff0c;适用于企业级应用集…

C++入门 详细版

欢迎来到干货小仓库&#xff01;&#xff01; 一分耕耘一分收获&#xff0c;离自己的目标越来越近。 passion&#xff01;passion&#xff01;&#xff01;passion&#xff01;&#xff01;&#xff01; 1.命名空间 由于C语言无法避免名字或者函数重复等问题&#xff0c;当有多…

一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload以及webpackChunkName的使用

文章目录 一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload1. 建议按文章顺序从头看&#xff0c;一看到底&#xff0c;豁然开朗2. preload和prefetch的区别2. prefetch的使用3. preload的使用4. webpackChunkName 一文大白话讲清楚webpack基本使用——9——…

Android AutoMotive --CarService

1、AAOS概述 Android AutoMotive OS是谷歌针对车机使用场景打造的操作系统&#xff0c;它是基于现有Android系统的基础上增加了新特性&#xff0c;最主要的就是增加了CarService&#xff08;汽车服务&#xff09;模块。我们很容易把Android AutoMotive和Android Auto搞混&…

(三)线性代数之二阶和三阶行列式详解

在前端开发中&#xff0c;尤其是在WebGL、图形渲染、或是与地图、模型计算相关的应用场景里&#xff0c;行列式的概念常常在计算变换矩阵、进行坐标变换或进行图形学算法时被使用。理解二阶和三阶行列式对于理解矩阵运算、旋转、平移等操作至关重要。下面&#xff0c;我将结合具…

Linux Bash 中使用重定向运算符的 5 种方法

注&#xff1a;机翻&#xff0c;未校。 Five ways to use redirect operators in Bash Posted: January 22, 2021 | by Damon Garn Redirect operators are a basic but essential part of working at the Bash command line. See how to safely redirect input and output t…

蓝桥杯算法日常|c\c++常用竞赛函数总结备用

一、字符处理相关函数 大小写判断函数 islower和isupper&#xff1a;是C标准库中的字符分类函数&#xff0c;用于检查一个字符是否为小写字母或大写字母&#xff0c;需包含头文件cctype.h&#xff08;也可用万能头文件包含&#xff09;。返回布尔类型值。例如&#xff1a; #…

MySQL(4)多表查询

引言&#xff1a;为什么需要多表的查询&#xff1f; A&#xff1a;提高效率&#xff0c;多线进行。 高内聚、低耦合。 一、多表查询的条件 1、错误的多表查询&#xff1a; SELECT employee_id,department_name FROM employees,departments; SELECT employee_id,department…

‘list‘ object has no attribute ‘mul‘

原来运行得好好的&#xff0c;突然出现错误&#xff1a;list object has no attribute mul &#xff0c;更换一个输入路径&#xff0c;又没问题&#xff0c;改一个路径&#xff0c;还是出现错误&#xff0c;很奇怪&#xff0c;后来又没有问题&#xff0c;记录一下。 参考这文…

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的旅行社在线预订与行程管理系统

开题报告 本文旨在设计研究与开发一个旅行社在线预订与行程管理系统。首先&#xff0c;本文介绍了旅行社在线预订与行程管理系统相关技术集成开发环境、软硬件环境&#xff0c;SpringBoot框架、Vue.js框架的基本原理和优势&#xff0c;以及在旅行社在线预订与行程管理系统开发…

HarmonyOS快速入门

HarmonyOS快速入门 1、基本概念 UI框架&#xff1a; HarmonyOS提供了一套UI开发框架&#xff0c;即方舟开发框架&#xff08;ArkUI框架&#xff09;。方舟开发框架可为开发者提供应用UI开发所必需的能力&#xff0c;比如多种组件、布局计算、动画能力、UI交互、绘制等。 方…

[论文阅读] (36)CS22 MPSAutodetect:基于自编码器的恶意Powershell脚本检测模型

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

SQL sever数据导入导出实验

1.创建数据库TCP-H &#xff08;1&#xff09;右键“数据库”&#xff0c;点击“新建数据库”即可 &#xff08;2&#xff09;用sql语言创建&#xff0c;此处以创建数据库DB_test为例&#xff0c;代码如下&#xff1a; use master;go--检查在当前服务器系统中的所有数据里面…

Vue平台开发三——项目管理页面

前言 对于多个项目的使用&#xff0c;可能需要进行项目切换管理&#xff0c;所以这里创建一个项目管理页面&#xff0c;登录成功后跳转这个页面&#xff0c;进行选择项目&#xff0c;再进入Home页面展示对应项目的内容。 一、实现效果图预览 二、页面内容 功能1、项目列表展…

PyCharm+RobotFramework框架实现UDS自动化测试- (四)项目实战0x10

1.环境搭建 硬件环境&#xff1a;CANoe、待测设备&#xff08;包含UDS诊断模块&#xff09; 2.pythonPyCharm环境 pip install robotframework pip install robotframework-ride pip install openpyxl pip install udsoncan pip install python-can pip install can-isotp3…

Qt基础项目篇——Qt版Word字处理软件

一、核心功能 本软件为多文档型程序&#xff0c;界面是标准的 Windows 主从窗口 拥有&#xff1a;主菜单、工具栏、文档显示区 和 状态栏。 所要实现的东西&#xff0c;均在下图了。 开发该软件&#xff0c;主要分为下面三个阶段 1&#xff09;界面设计开发 多窗口 MDI 程序…