当前位置: 首页 > news >正文

关于Qt主窗口的菜单部件

前言

        在介绍主窗口的两大部件之前,我们要先知道关于主窗口的一些知识。


主窗口 

        一个主窗口可以没有菜单条、工具条、状态条,但必须设置中心部件。在 Q 生成的 C++头文件 ui_mainwindow.h 代码中,我们可以看到以下代码:

centralWidget = new Qwidget(MainWindow);
centralWidget -> setObjectName(Qstring::fromUtf8("centralwidget"));
MainWindow -> setCentralwidget(centralWwwidget);

        主窗口的框架看起来有点复杂,在 Qt Designer 中,一般不必太关心它的实现,Qt 在生成过程中,会自动编译在头文件 ui_mainwindow.h代码中,只需关心自己建立的窗口部件即可。

主窗口的标题 

        修改主窗口的标题有两种方法:一是在ui设计模式中:在设计模式界面右上角的对象面板中,选择MainWindow选项,然后在右下角的属性面板中,选择windowTitle属性修改。

二是自己添加代码:

打开MainWindow.cpp添加:

#include<QTextCodec>

在MainWindow的构造函数中:

Mainwindow::Mainwindow(QWidget *parent):
QMainwindow(parent)
ui(new Ui::Mainwindow)
{
ui->setupui(this);
//设置中文字符
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForTr(QTextCodec::codecForName ("GB2312"));
this->setwindowTitle("我修改了窗口标题");
}

主窗口的图标 

        如果想要给主窗口添加图标,可以从资源文件中来进行选择,在对其他部件或者对象添加图标的时候大多都是在资源文件中进行选择:

1.从文件菜单中选择新建文件或工程(New File or Project)菜单项,在“新建”界面中选择 Qt Resource file 选项:

2. 在工程面板中,打开资源文件 tubiao.qrc,单击 Add 按钮,选择加人前缀“/”:

3.选择添加文件。选择logo.png,图标 logo.jpg 添加到资源文件中:

4.进人设计模式,在窗口属性中,选择 Windowlcon,打开资源选择对话框,单击左上角刷新资源按钮,选择确定图标。

主窗口的基本操作

        在了解到如何设置了标题和图标之后,我们来了解一下关于主窗口的一些基本操作函数

  • close():关闭当前窗口,如果是主窗口同时退出程序。
  • hide():隐藏当前窗口,该操作等同于 setVisible(false)。
  • rect():返回当前窗口内部的区域。
  • resize(const QSize &.)/resize(int,int):调整窗口的大小。
  • setAutoFillBackground(bool):设置自动填充窗口背景,当输人值为 true 时,该操作用窗口的默认值刷新窗口背景;为 false时,不重绘窗口背景。该操作在自定义窗口背景和绘图时很有用。
  • setCentralWidget(QWidget *):设置中心部件。窗口默认的中心部件是QWidget,用户如果想用其他部件替换,可以在 MainWindow 的构造函数中调用此操作。
  • setWindowState(Qt::WindowStates):设置窗口的状态,包括设置窗口为最大化最小化、全屏和活动状态。
  • setWindowTitle(const QString &):设置窗口的标题。
  • show():显示窗口。
  • showFullScreen():全屏显示窗口。
  • showMaximized():最大化显示窗口。
  • showMinimized():最小化显示窗口。
  • showNormal():窗口正常大小显示。
  • update()/update (int, int, int, int)/update (const QRect &.)/update (constQRegion &.):更新窗口的显示,调用该操作后,窗口执行 paintEvent 操作。

菜单

普通版本菜单

        菜单栏为一种树形结构,单击以后即可显示出菜单项,通过菜单项为软件的大多数功能提供功能入口。在ui界面上可以快速设计一个菜单栏(图标添加和上文方法相同):

        并且对每一个选项跳转槽函数进行编辑:

        选择菜单后,在ui界面下方右键单击选项对槽函数进行编辑:

void MainWindow::on_open_action_triggered()
{QMessageBox::information(this,"提示","你点击了打开");
}void MainWindow::on_save_action_triggered()
{QMessageBox::information(this,"提示","你点击了保存");
}void MainWindow::on_quit_action_triggered()
{this->close();
}

 

 弹出式菜单

        了解了如何设计菜单和编写菜单代码,弹出式菜单操作就很简单了。首先重载主窗口的 void mousePressEvent(QMouseEvent * event)操作,响应窗口中的鼠标右键信息。然后,在 void mousePressEvent(QMouseEvent *event)操作中,直接在需要单击的位置弹出已经建立的菜单即可,下面的代码给出了上述两种菜单的弹出显示方法:

1.在头文件中增加操作声明:

void mousePressEvent(QMouseEvent *event);

 2.源文件中增加包含文件和 mousePressEvent 操作的实现:

#include<QMouseEvent>.....void MainWindow::mousePressEvent(OMouseEvent * event){//右键显示自己编码生成的菜单if(event->button()==Qt::RightButton){aboutMenu->popup(event->globalPos());}//左键显示 QtDesigner 生成的菜单if(event->button()==Qt::LeftButton){ui->menu->popup(event->globalPos());}   }

希望各位大佬一起交流学习,我也会回访各位大佬的空间的!!!

相关文章:

关于Qt主窗口的菜单部件

前言 在介绍主窗口的两大部件之前&#xff0c;我们要先知道关于主窗口的一些知识。 主窗口 一个主窗口可以没有菜单条、工具条、状态条&#xff0c;但必须设置中心部件。在 Q 生成的 C头文件 ui_mainwindow.h 代码中,我们可以看到以下代码: centralWidget new Qwidget(MainWi…...

rabbitmq每小时自动重启

引言 找了半天&#xff0c;最后通过系统日志发现是因为执行 systemctl restart rabbitmq-server 命令无法返回回调 systemctl 导致超时&#xff0c;自动关机。怀疑是 rabbitmq 与 systemctl 冲突&#xff0c;后 mq 升级版本已修复&#xff0c;可参考&#xff1a;https://github…...

【多线程】单例模式 | 饿汉模式 | 懒汉模式 | 指令重排序问题

文章目录 单例模式一、单例模式1.饿汉模式2.懒汉模式&#xff08;单线程&#xff09;3.懒汉模式&#xff08;多线程&#xff09;改进 4.指令重排序1.概念2.question:3.解决方法4总结&#xff1a; 单例模式 一、单例模式 单例&#xff0c;就是单个实例 在有些场景中&#xff0c…...

00_Qt概述以及如何创建一个QT新项目

Qt概述 1.Qt概述1.1 什么是Qt1.2 Qt的发展史1.3 支持的平台1.4 Qt版本1.5 Qt的下载与安装1.6 Qt的优点 2.QT新项目创建3.pro文件4.主函数5.代码命名规范和快捷键 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面…...

git报错

这里写自定义目录标题 git报错Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 有一个原因就是在github上设置对应密钥时&#xff0c;有一个key获取应该设置为…...

【R: mlr3:超参数调优】

本次分享官网教程地址 https://mlr3book.mlr-org.com/chapters/chapter4/hyperparameter_optimization.html 型调优 当你对你的模型表现不满意时&#xff0c;你可能希望调高你的模型表现&#xff0c;可通过超参数调整或者尝试一个更加适合你的模型&#xff0c;本篇将介绍这些操…...

使用Pandas实现股票交易数据可视化

一、折线图&#xff1a;展现股价走势 1.1、简单版-股价走势图 # 简洁版import pandas as pdimport matplotlib.pyplot as plt# 读取CSV文件df pd.read_csv(../数据集/格力电器.csv)data df[[high, close]].plot()plt.show() 首先通过df[[high,close]]从df中获取最高价和收盘…...

蓝桥杯刷题-乌龟棋

312. 乌龟棋 - AcWing题库 /* 状态表示&#xff1a;f[b1,b2,b3,b4]表示所有第 i种卡片使用了 bi张的走法的最大分值。状态计算&#xff1a;将 f[b1,b2,b3,b4]表示的所有走法按最后一步选择哪张卡片分成四类&#xff1a;第 i类为最后一步选择第 i种卡片。比如 i2&#xff0c;则…...

美国纽扣电池认证标准要求16 CFR 第 1700和ANSI C18.3M标准

法规背景 为了纪念瑞茜哈姆史密斯(Reese Hamsmith)美国德州一名于2020年12月因误食遥控器里的纽扣电池而不幸死亡的18个月大的女婴。 美国国会于2022年8月16日颁布了H.R.5313法案&#xff08;第117-171号公众法&#xff09;也称为瑞茜法案&#xff08;Reese’s Law&#xff09…...

华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理工具

文章目录 华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理工具1. 介绍2. 下载3. 静音模式、平衡模式、增强模式配置4. 配置电源方案与模式切换绑定5. 启动Ghelper控制面板6. 目前支持的设备型号 华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理…...

【ROS2笔记六】ROS2中自定义接口

6.ROS2中自定义接口 文章目录 6.ROS2中自定义接口6.1接口常用的CLI6.2标准的接口形式6.3接口的数据类型6.4自定义接口Reference 在ROS2中接口interface是一种定义消息、服务或动作的规范&#xff0c;用于描述数据结构、字段和数据类型。ROS2中的接口可以分为以下的几种消息类型…...

设计模式-代理模式(Proxy)

1. 概念 代理模式&#xff08;Proxy Pattern&#xff09;是程序设计中的一种结构型设计模式。它为一个对象提供一个代理对象&#xff0c;并由代理对象控制对该对象的访问。 2. 原理结构图 抽象角色&#xff08;Subject&#xff09;&#xff1a;这是一个接口或抽象类&#xff0…...

中伟视界:智慧矿山智能化预警平台功能详解

矿山智能预警平台是一种高度集成化的安全监控系统&#xff0c;它能够提供实时的监控和报警功能&#xff0c;帮助企业和机构有效预防和响应潜在的安全威胁。以下是矿山智能预警平台的一些关键特性介绍&#xff1a; 报警短视频生成&#xff1a; 平台能够在检测到报警时自动生成短…...

如何在PPT中获得网页般的互动效果

如何在PPT中获得网页般的互动效果 效果可以看视频 PPT中插入网页有互动效果 当然了&#xff0c;获得网页般的互动效果&#xff0c;最简单的方法就是在 PPT 中插入网页呀。 那么如何插入呢&#xff1f; 接下来为你讲解如何获得&#xff08;此方法在 PowerPoint中行得通&#…...

HTML段落标签、换行标签、文本格式化标签与水平线标签

目录 HTML段落标签 HTML换行标签 HTML格式化标签 加粗标签 倾斜标签 删除线标签 下划线标签 HTML水平线标签 HTML段落标签 在网页中&#xff0c;要把文字有条理地显示出来&#xff0c;就需要将这些文字分段显示。在 HTML 标签中&#xff0c;<p>标签用于定义段落…...

NVIC简介

NVIC&#xff08;Nested Vectored Interrupt Controller&#xff09;是ARM处理器中用于中断管理的一个重要硬件模块。它负责处理来自多个中断源的中断请求&#xff0c;并根据中断的优先级来安排处理器执行相应的中断服务例程&#xff08;ISR&#xff09;。NVIC是ARM Cortex-M系…...

LeetCode-924. 尽量减少恶意软件的传播【深度优先搜索 广度优先搜索 并查集 图 哈希表】

LeetCode-924. 尽量减少恶意软件的传播【深度优先搜索 广度优先搜索 并查集 图 哈希表】 题目描述&#xff1a;解题思路一&#xff1a;解题思路二&#xff1a;0解题思路三&#xff1a;0 题目描述&#xff1a; 给出了一个由 n 个节点组成的网络&#xff0c;用 n n 个邻接矩阵图…...

【linux】yum 和 vim

yum 和 vim 1. Linux 软件包管理器 yum1.1 什么是软件包1.2 查看软件包1.3 如何安装软件1.4 如何卸载软件1.5 关于 rzsz 2. Linux编辑器-vim使用2.1 vim的基本概念2.2 vim的基本操作2.3 vim命令模式命令集2.4 vim底行模式命令集2.5 vim操作总结补充&#xff1a;vim下批量化注释…...

excel试题转word格式

序号试题选项答案 格式如上。输出后在做些适当调整就可以。 import pandas as pd from docx import Document from docx.shared import Inches# 读取Excel文件 df pd.read_excel(r"你的excel.xlsx")# 创建一个新的Word文档 doc Document()# 添加标题 doc.add_headi…...

C语言学习笔记之指针(二)

指针基础知识&#xff1a;C语言学习笔记之指针&#xff08;一&#xff09;-CSDN博客 目录 字符指针 代码分析 指针数组 数组指针 函数指针 代码分析&#xff08;出自《C陷阱和缺陷》&#xff09; 函数指针数组 指向函数指针数组的指针 回调函数 qsort() 字符指针 一…...

在Debian 12系统上安装Docker

Docker 在 Debian 12 上的安装 安装验证测试更多信息 引言 在现代的开发环境中&#xff0c;容器技术发挥着至关重要的作用。Docker 提供了快速、可靠和易于使用的容器化解决方案&#xff0c;使开发人员和 DevOps 专业人士能够以轻松的方式将应用程序从一个环境部署到另一个环…...

策略者模式(代码实践C++/Java/Python)————设计模式学习笔记

文章目录 1 设计目标2 Java2.1 涉及知识点2.2 实现2.2.1 实现两个接口飞行为和叫行为2.2.2 实现Duck抽象基类&#xff08;把行为接口作为类成员&#xff09;2.2.3 实现接口飞行为和叫行为的具体行为2.2.4 具体实现鸭子2.2.5 模型调用 3 C&#xff08;用到了大量C2.0的知识&…...

vue2/Vue3项目中,通过请求接口来刷新列表中的某个字段(如:Axios)

vue2/Vue3项目中&#xff0c;通过请求接口来刷新列表中的某个字段。可以使用 Vue 的异步请求库&#xff08;如 Axios&#xff09;来发送请求&#xff0c;并在请求成功后更新相应的字段。 示例如下&#xff08;Vue2&#xff09;&#xff1a; 简单的示例如下&#xff0c;假设列…...

Java多线程锁定

前言 利用多线程编程虽然能极大地提升运行效率&#xff0c;但是多线程本身的不稳定也会带来一系列的问题&#xff0c;其中最经典莫过于售票问题&#xff1b;这时就需要人为地加以限制和干涉已解决问题&#xff0c;譬如今日之主题——锁定。 锁定是我们在多线程中用来解决售票…...

【C 数据结构】单链表

文章目录 【 1. 基本原理 】1.1 链表的节点1.2 头指针、头节点、首元节点 【 2. 链表的创建 】2.0 创建1个空链表&#xff08;仅有头节点&#xff09;2.1 创建单链表&#xff08;头插入法&#xff09;*2.2 创建单链表&#xff08;尾插入法&#xff09; 【 3. 链表插入元素 】【…...

[MAUI]集成富文本编辑器Editor.js至.NET MAUI Blazor项目

文章目录 获取资源从源码构建从CDN获取获取扩展插件 创建项目创建控件创建Blazor组件初始化保存销毁编写渲染逻辑 实现只读/编辑功能切换模式获取只读模式状态响应切换事件 实现明/暗主题切换项目地址 Editor.js 是一个基于 Web 的所见即所得富文本编辑器&#xff0c;它由CodeX…...

Spring Boot | Spring Boot 整合 “Servlet三大组件“ ( Servlet / Filter / Listene )

目录: Spring Boot 整合 "Servlet三大组件" &#xff1a;1. 使用 "组件注册" 的方式 "整合Servlet三大组件" ( 实际操作为 : 创建自定义的"三大组件"对象 结合刚创建"的自定义组件对象"来 将 XxxRegistrationBean对象 通过…...

错误分析 (Machine Learning研习十九)

错误分析 您将探索数据准备选项&#xff0c;尝试多个模型&#xff0c;筛选出最佳模型&#xff0c;使用 Grid SearchCV微调其超参数&#xff0c;并尽可能实现自动化。在此&#xff0c;我们假设您已经找到了一个有前途的模型&#xff0c;并希望找到改进它的方法。其中一种方法就…...

SQL系统函数知识点梳理(Oracle)

这里写目录标题 函数系统函数转换函数to_date()to_char()将数值转换成字符格式 添加货币符号将日期转换成字符 其他不常用的转换函数 字符型函数连接函数大小写转换函数大写转换小写转换首字母大写&#xff0c;其余的小写 替换函数去除空格函数截取函数填充函数获取字符长度函数…...

面试突击---MySQL索引

面试突击---MYSQL索引 面试表达技巧&#xff1a;1、谈一下你对于mysql索引的理解&#xff1f;&#xff08;为什么mysql要选择B树来存储索引&#xff09;2、索引有哪些分类&#xff1f;3、聚簇索引与非聚簇索引4、回表、索引覆盖、最左匹配原则、索引下推&#xff08;1&#xff…...

网站服务商查询/如何查看百度搜索指数

荣耀30pro和nova7pro其实两款手机定位都是非常相似的&#xff0c;都主打年轻消费群体&#xff0c;但是nova系列主打线zhi下渠道&#xff0c;荣耀主打线上销售&#xff0c;这两款手机中我会更加倾向于选择荣耀30Pro&#xff0c;因为荣耀30Pro各方面配置更均衡一些&#xff0c;下…...

新的南宁网站建设公司/代理广告投放平台

点击上方“Java之间”&#xff0c;选择“置顶或者星标”你关注的就是我关心的&#xff01;作者&#xff1a;Apocalypsa一、简介毕业答辩搞定&#xff0c;总算可以闲一段时间&#xff0c;把这段求职经历写出来&#xff0c;也作为之前三个半月的求职的回顾。首先说说我拿到的offe…...

日照聊城网站建设/青岛seo关键词优化公司

作者&#xff1a;袁腾飞 李峰学序言1 没有笨学生&#xff0c;只有笨方法也有一些学生&#xff0c;他们该学的时候学&#xff0c;该玩的时候玩&#xff0c;花费的学习时间相对较少&#xff0c;每次考试却总能考高分&#xff0c;让埋头于书山题海的同学羡慕不已。这些学生的智力并…...

商城网站建设流程/接外包网站

缓存设计Eureka 的数据存储分了两层&#xff1a;数据存储层和缓存层数据存储层 - 服务注册表 - registry对注册服务的维护在com.netflix.eureka.registry.AbstractInstanceRegistry中实现private final ConcurrentHashMap>> registry new ConcurrentHasdhMap>>();r…...

个人求职网站履历怎么做/怎样搭建网站

alter system kill session&#xff0c;oracle杀死进程如果一个进程挂起或者占用太多资源拒绝其他会话&#xff0c;可以杀死这个进程。查询这个进程的数据库用户名&#xff0c;操作系统用户名&#xff0c;会话ID&#xff0c;会话序列号&#xff0c;和系统进程&#xff0c;找到s…...

做网站的命题依据/知识营销成功案例介绍

ALTIBASE 数据库完美结合了DRDBMS 和 MMDBMS的特性&#xff0c;并提出了一个新概念---Hybrid DBMS&#xff0c;为需要满足高速处理大量数据的用户提供了最有效的解决方案。ALTIBASE 提供高性能、容错能力和事务管理的方便性&#xff0c;特别是在通信、网上银行、证券交易、实时…...