qt学习笔记4:QMainWindow 菜单栏、工具栏、状态栏、铆接部件、

news2024/11/19 16:27:04

在创建基类的时候,有三大选择,一个是QWidge 空窗口, 另一个就是QMainWindow
QMainWindow是一个为用户提供主窗口的类,包含一个菜单栏,多个工具栏,多个链接部件, 一个状态栏以及一个中心部件,是许多应用程序的基础,如文本编辑器,图片编辑器等
在这里插入图片描述
菜单栏、工具栏、铆接部件(浮动窗口)、中心部件

创建新项目咯 Application—>第一个Widges Application----->下一步起名字放位置----->默认不去动----->基类就选择QMainWindow, 创建见面那一栏先不勾还是用代码实现,类名改不改都行
在这里插入图片描述

菜单栏

先举个简单例子:先创建一个menuBar, 有一个系统的方法可以直接创建menuBar()bar需要被放进去,且只有在有内容的时候才会显示
在这里插入图片描述在.cpp中声明创建即可, 可以看到有点击的效果
在这里插入图片描述
一般点击菜单之后会有菜单项,比如word中点击文件,就会有新建保存之类的,所以需要创建菜单项, (里面直接写字符串是这个函数最为简单的一个用法,先时间基本的,后续再研究不同参数的应用场景
在这里插入图片描述
在这里插入图片描述

也可以添加风格符 在这里插入图片描述 两个菜单项之间多一个横线
需要注意 菜单栏只能有一个

工具栏

工具栏可以有多个, 工具栏没有系统的方法,只能new一个出来,放到对象树上, 然后同样的放到窗口中
在这里插入图片描述

在这里插入图片描述
多了一个栏, 这个栏可以被拖拽到上下左右, 这其实可以通过参数去修改它默认的位置。
在这里插入图片描述
打开默认就会停靠在左边
也可以只允许左右停靠setAllowedArea
对toolBar设置内容, 工具栏里放的是啥,就是要做的事情嘛,可以把上面file下创建的的action接收起来
在这里插入图片描述

再将这两个action放到toolbar中
在这里插入图片描述
运行结果如下, 这边的新建和打开就是菜单栏下打开file的新建和打开, toolBar可以添加分割线
在这里插入图片描述

可以在工具栏中添加控件,比如说按钮, 可以通过addWidget将这个控件放进去
在这里插入图片描述

这部分总结

  1. 菜单栏最多只能有一个
    1.1. QMenuBar * bar = MenuBar(); 创建菜单栏 有专门的函数
    1.2. setMenuBar(bar);将菜单栏放入
    1.3. QMenu * fileMenu = bar->addMenu(“file”);在菜单栏中增加内容
    1.4. QMenu* editMenu = bar->addMenu(“edit”)’
    1.5. QAction* newAction = fileMenu->addAction(“open”); 创建菜单项
    1.6. fileMenu->addSeperator();添加分割线

  2. 工具栏可以有多个
    2.1. QToolBar* bar = new QToolBar(this)'//创建
    2.2. addToolBar(默认停靠区域,bar);把bar放进去
    2.3. 设置后期停靠位置, 设置浮动,设置移动等
    2.4. bar->addAction(newAction) 设置菜单项
    2.5. bat->addWidge(btn)可以添加小控件

状态栏

最多只能有一个,系统提供一个成员函数, 同样的先生成一个stBar,放到窗口中, 在bar中放东西
在这里插入图片描述
在这里插入图片描述
也可以放在右侧

铆接部件(浮动窗口)

在这里插入图片描述
在这里插入图片描述
这个窗口可以浮动
在这里插入图片描述
但是代码中显示的是下方,为何看上去现在是上边呢,是因为现在还没有中心部件,上下是围绕着中心部件来的
现在设置个中心部件,比如整个记事本
在这里插入图片描述

结果就是:
在这里插入图片描述

可以看到浮动窗口到下面了

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

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

相关文章

《数据结构》(六)八大排序(上)

生活中大家从小到大处处可见排队,但是排队有哪些快速的方法你了解吗? 八大排序排序的基本概念插入排序直接插入排序基本思想代码直接插入排序总结希尔排序基本思想代码希尔排序总结选择排序直接选择排序基本思想:代码直接选择排序总结堆排序堆…

大数据基础之java常用API一

常用API1. Object类2. String类String案例1. Object类 构造方法空参构造全参构造 Object类: 是所有类的基类,或者说公共父类,每个类都直接或者间接的继承自Object,所以该类中有的方法,其他类中都有 构造方法: public Object(); 所有类的构造方法中都会默认调用super() 会逐级调…

C#里在子窗口与父窗口之间进行数据传送

在C#里经常需要在子窗口与父窗口之间进行数据传送,或者调用,虽然有很多方法可以实现,但是采用委托还是比较简单和直接的方式。 所以这次针对委托来演示一下怎么样实现这种功能。 下面先来创建一个带两窗口的例子,如下图所示: 接着来看一下,创建父窗口的代码: namespace…

【C++笔试强训】第十一天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦 &…

vite基础知识-1

为什么选择vite? 讲vite之前,我们先来了解一下webpack的原理。 webpack支持多种模块化(浏览器端和服务端都可以运行)。比如: // index.js const lodash require("lodash"); // commonjs规范 import React…

win10 docker desktop 报 docker desktop stopped

win10电脑安装doker deskto遇到一些问题解决过程记录 报 docker desktop stopped 没过多会, docker desktop就自动退出了, 要以理解为闪退 网上查了一下原因, 虚拟化可能没设置 进入bios, 发现笔记本电脑没有这个设置 重启电脑后, 弹出消息 WSL 2 installation is incompl…

通道分离与合并、彩色图转换为灰度图、二值化

文章目录图像基础重要的函数图像基本知识图像基础通道分离与合并彩色图转换为灰度图二值化图像的加减乘除图像基础 矩阵分辨率8位整型图像浮点数图像 现在简单介绍下二值化、灰度图以及真彩色和假彩色 图像的二值化,就是将图像上的像素点的灰度值设置为0或255&am…

安装宝塔面板(详细教程)

目录 安装宝塔面板 (一)前言 (二)准备工作 1、官网:宝塔面板下载,免费全能的服务器运维软件 (三)安装宝塔面板 1、进入官网,选择“安装脚本” 2、选择对应版本的安…

C++游戏开发小笔记

1.入门小语法 1.1 命名空间 当想使用库文件的某个函数时,为了防止由于重名而引起的混乱调用,使用命名空间来区分同名函数。 字符串String也是标准命名空间的一个。如果没有using namespace std; 想用string 类型得 std:: string 1.2浮点数的存储…

计算机视觉--flask部署 目标检测算法,并在局域网内远端访问

1.flask框架 Flask是一个轻量级的基于Python的web框架。static 文件夹来保存静态文件,templates 文件夹存放前端页面 安装: pip install Flask框架代码: from flask import * from flask import Flaskapp Flask(__name__) //获取实例app.…

Web监听器:Listener

Listener简介常用监听接口监听在线用户信息的实现Model层Controller层OnlineUserListener的实现View层测试简介 监听器(Listener),是一个实现特定接口的普通Java程序,用于监听Web应用中的对象或信息发生改变时,作出相应…

大前端进阶

目录 1.概述和前端工具vscode安装 1.下载安装VScode 2.中文界面配置 3.插件安装 4.设置字体大小 5.开启完整的Emmet语法支持 2.Nodejs 1.Nodejs介绍与安装 2.快速入门-Hello World 3.Node - 实现请求响应 4.Node-操作MYSQL数据库 3.Es6 1.ES6的概述 2.ES6的语法…

Docker实战:使用Dockerfile部署第一个netcore程序

目录 1、创建一个NetCore API项目 2、云服务部署 2.1 首先登录云服务器创建一个测试目录 2.2 新建dockerfile文件用来构建镜像。 2.3 构建镜像 2.4 运行镜像 目录 1、创建一个NetCore API项目 2、云服务部署 2.1 首先登录云服务器创建一个测试目录 2.2 新建dockerfil…

Python3,10h行代码,制作艺术签名,从此走上人生巅峰。

制作艺术签名1、引言2、代码实战2.1 代码示例3、总结1、引言 小鱼:小屌丝,你在画啥呢? 小屌丝:… 我这在练习签名呢。 小鱼:这… 艺术签? 小屌丝:喔,鱼哥,你这真实博才多…

CSDN云IDE怎样克隆代码

文章目录1、怎样从GitHub导入项目?1.1、系统生成SSH-KEY2、克隆代码2.1、克隆代码方式一2.2、克隆代码方式二2.3、克隆代码方式三1、怎样从GitHub导入项目? 1.1、系统生成SSH-KEY 1、打开Terminal 2、查看是否存在现有的ssh密钥 $ ls -al ~/.ssh3、检…

【LeetCode】【二叉树的最近公共祖先】

力扣 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自…

《JavaSE-第十四章》之文件(一)

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 刷题求职神器 共勉:talk is cheap, show me the code 作者是爪哇岛的新手,水…

Go 语言中的并发编程(Let‘s Go 二十八)

Go从底层就支持并发编程,同时实现垃圾回收机制。 先了解并发相关的几个名词概念。 进程:系统进行资源分配和调度的基本单位,使系统结构的基础,它是一个实体。 线程:是程序中一个单一的顺序执行流程,是进程…

python做了个自动关机工具,再也不会耽误我下班啦

上班族经常会遇到这样情况,着急下班结果将关机误点成重启,或者临近下班又通知开会,开完会已经迟了还要去给电脑关机。 【阅读全文】 今天使用PyQt5做了个自动关机的小工具,设置好关机时间然后直接提交即可,下班就可以…

什么是JWT及在JAVA中如何使用?

目录 1、为什么使用JWT? 2、JWT 的 格式 3、使用 JWT 就绝对安全 吗? 4、JWT 的 鉴权 流程 5、JWT 入门案例 5.1 引入依赖 5.2 生成Token 5.3 解析Token 5.4 工具类 JSON Web token简称JWT, 是用于对应用程序上的用户进行身份验证的标记。 也就…