【Qt】05-菜单栏

做菜单

  • 前言
  • 一、创建文件
  • 二、菜单栏 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()
{

}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【喜讯】海云安荣获“数字安全产业贡献奖”

近日&#xff0c;国内领先的数字化领域独立第三方调研咨询机构数世咨询主办的“2025数字安全市场年度大会”在北京成功举办。在此次大会上&#xff0c;海云安的高敏捷信创白盒产品凭借其在AI大模型技术方面的卓越贡献和突出的技术创新能力&#xff0c;荣获了“数字安全产业贡献…

MySQL训练营-慢查询诊断问题

slow_query_log long_query_time slow_query_log&#xff1a;日志开关&#xff0c;是否记慢查询日志 long_query_time&#xff1a;超过多长时间判定为慢查询 查看参数设置&#xff1a; SHOW VARIABLES LIKE ‘slow_query_log’;SHOW VARIABLES LIKE ‘long_query_time’; …

2025年最新汽车零部件企业销售项目管理解决方案

在汽车零部件企业&#xff0c;销售项目管理的不规范和销售预测的不准确性常导致生产计划无法及时调整&#xff0c;因此客户关系常常中断&#xff0c;导致企业业务机会的丧失。为解决该问题&#xff0c;企业需要投入更多资源以优化销售流程与销售预测。 1、360多维立体客户视图…

K8S中ingress详解

Ingress介绍 Kubernetes 集群中&#xff0c;服务&#xff08;Service&#xff09;是一种抽象&#xff0c;它定义了一种访问 Pod 的方式&#xff0c;无论这些 Pod 如何变化&#xff0c;服务都保持不变。服务可以被映射到一个静态的 IP 地址&#xff08;ClusterIP&#xff09;、一…

大模型:LangChain技术讲解

一、什么是LangChain 1、介绍 LangChain是一个用于开发由大型语言模型提供支持的Python框架。它提供了一系列工具和组件&#xff0c;帮助我们将语言模型集成到自己的应用程序中。 有了它之后&#xff0c;我们可以更轻松地实现对话系统、文本生成、文本分类、问答系统等功能。…

【优选算法篇】2----复写零

---------------------------------------begin--------------------------------------- 这道算法题相对于移动零&#xff0c;就上了一点点强度咯&#xff0c;不过还是很容易理解的啦~ 题目解析&#xff1a; 这道题如果没理解好题目&#xff0c;是很难的&#xff0c;但理解题…

office 2019 关闭word窗口后卡死未响应

最近关闭word文件总是出现卡死未响应的状态&#xff0c;必须从任务管理器才能杀掉word 进程&#xff0c;然后重新打开word再保存&#xff0c;很是麻烦。&#xff08;#其他特征&#xff0c;在word中打字会特别变慢&#xff0c;敲击键盘半秒才出现字符。&#xff09; office官网…

acm培训 part 1(学习总结)

第一部分的重点为语法糖&#xff0c;时空复杂度&#xff0c;stl容器等等&#xff0c;下面就简单介绍一下这些部分。 1. 语法糖 1.1 定义 语法糖是由英国计算机科学家彼得约翰兰达提出的一个术语&#xff0c;指的是编程语言中添加的某种语法&#xff0c;这种语法对语言的功能…

Arduino基础入门学习——OLED显示屏+DHT11采集温湿度并显示

Arduino基础入门学习——OLED显示屏DHT11显示温湿度 一、前言二、准备工作三、程序代码四、结束语 一、前言 本篇文章主要使用OLED液晶显示屏模块和DHT11温湿度传感器&#xff0c;获取环境温湿度并显示在显示屏&#xff0c;也算是结合之前我所编写的博客给大家带来一个算是比较…

Kubernetes相关知识入门详解

一、Pod的滚动升级 1.服务升级的一般思路&#xff1a;停止与该服务相关的所有服务pod&#xff0c;重新拉去更新后的镜像并启动。这种方法存在一个比较现实的问题是逐步升级导致较长时间的服务不可用。 2.Kubernetes滚动升级的思路&#xff1a;通过滚动升级的命令创建新的rc&…

云原生时代,如何构建高效分布式监控系统

文章目录 一.监控现状二.Thanos原理分析SidecarQuerierStoreCompactor 三.Sidecar or ReceiverThanos Receiver工作原理 四.分布式运维架构 一.监控现状 Prometheus是CNCF基金会管理的一个开源监控项目&#xff0c;由于其良好的架构设计和完善的生态&#xff0c;迅速成为了监控…

Qt 5.14.2 学习记录 —— 십구 事件

文章目录 1、事件的概念2、处理事件3、鼠标事件1、鼠标单击和双击2、鼠标移动3、鼠标滚轮滚动 4、键盘事件5、定时器事件6、窗口移动和大小改变事件 1、事件的概念 用户进行操作时会产生事件&#xff0c;事件可以关联处理函数。Qt封装了操作系统的事件机制&#xff0c;然后进一…

10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析

10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析 文章目录 10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析1. 规则持久化1.1 Nacos Server 配置中心-规则持久化实例 2. 最后&#xff1a; 1. 规则持久化 规则没有持久化的问题 如果 sentinel 流控规则没有…

地学专业想提前准备春招?怎么准备自己的简历?

眼看着即将过年&#xff0c;过完年后基本上春招也要开始提上日程 之前咱们说过&#xff0c;很多同学认为自身技术过硬就会一路顺风&#xff0c;自己经验丰富、编程技术过硬&#xff0c;就不愁找不到工作&#xff0c;这固然是取得好offer的基础。 但再好的技术也不可能通过混乱…

IoTDB结合Mybatis使用示例(增删查改自定义sql等)

IoTDB时序库是当前越来越流行以及基于其优势各大厂商越来越易接受的国产开源时序数据库&#xff0c;针对IoTDB的内容不做过多介绍&#xff0c;在使用该时序库时&#xff0c;往往有一定入门门槛&#xff0c;不同于关系型数据库或文档型数据库那般方便维护和接入开发&#xff0c;…

Go语言的栈空间管理

Go 语言的栈空间管理 Go 语言的栈空间管理是其并发模型的核心之一。Go 的运行时环境&#xff08;runtime&#xff09;采用动态栈分配机制&#xff0c;能够根据 Goroutine 的需求动态扩展和收缩栈空间&#xff0c;避免了传统固定栈大小的限制。Go 的栈管理经历了从 分块式栈 到…

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

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

我谈《概率论与数理统计》的知识体系

学习《概率论与数理统计》二十多年后&#xff0c;在廖老师的指导下&#xff0c;才厘清了各章之间的关系。首先&#xff0c;这是两个学科综合的一门课程&#xff0c;这一门课程中还有术语冲突的问题。这一门课程一条线两个分支&#xff0c;脉络很清晰。 概率论与统计学 概率论…

第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

第十五届的题目在规定时间内做出了前5道&#xff0c;还有2道找时间再磨一磨。现在把做的一些思路总结如下&#xff1a; 题1&#xff1a;握手问题 问题描述 小蓝组织了一场算法交流会议&#xff0c;总共有 50人参加了本次会议。在会议上&#xff0c;大家进行了握手交流。按照惯例…

OpenEuler学习笔记(四):OpenEuler与CentOS的区别在那里?

OpenEuler与CentOS的对比 一、基本信息 起源与背景&#xff1a; OpenEuler&#xff1a;由华为发起&#xff0c;后捐赠给开放原子开源基金会&#xff0c;旨在构建一个开放、多元化的云计算和边缘计算平台&#xff0c;以满足华为及其他企业的硬件和软件需求。CentOS&#xff1a;…