Qt 菜单栏上手教程:QMenuBar QMenu QToolbar

引言



在Qt框架中,QMenuBar、QMenu、QToolbar和QAction都是用于构建应用程序界面中的用户交互元素。

QMenuBar

  • 是什么:QMenuBar是一个用于创建横向菜单栏的类。在桌面应用程序中,它通常位于窗口的顶部。
  • 应用场景:当您需要一个包含多个下拉菜单的标准菜单栏时,可以使用QMenuBar。每个下拉菜单(由QMenu对象表示)可以包含一组操作(QAction对象)或更多的子菜单。

QMenu

  • 是什么:QMenu是一个用于创建下拉菜单的类。这些菜单包含一系列的QAction对象,用户可以通过点击这些对象来执行命令。
  • 应用场景:用于在QMenuBar中创建下拉菜单项,或者作为上下文菜单(也称为右键菜单)显示。QMenu可以包含多个QAction对象,以及分隔符来逻辑分组动作。

QToolbar

  • 是什么:QToolbar提供了一个工具栏的容器,在其中可以放置按钮、下拉菜单或其他小部件。
  • 应用场景:用于快速访问最常用的命令,通常以图标形式显示。它们可以悬浮也可以停靠在应用程序窗口的边缘。和QMenu一样,QToolbar也可以包含QAction对象,从而提供与菜单栏一致的操作。

QAction

  • 是什么:QAction是一个用于执行命令的抽象用户界面动作。它可以被认为是一个触发器,当用户与之交互时会执行某个命令。
  • 应用场景:QAction可以在多个地方使用,例如在菜单(QMenu)、工具栏(QToolbar)或其他用户界面元素中。通过在这些地方使用相同的QAction,您可以确保不同界面元素之间行为的一致性,并且可以集中地管理动作状态(如启用、禁用、图标、文本等)。

总结,QMenuBar、QMenu、QToolbar和QAction是协同工作的类,用于创建和管理一个应用程序的用户界面命令和控制。它们使得界面元素之间的动作同步变得容易,提高了代码的重用性和界面的一致性。

1.添加QMenuBar QMenu QToolbar

右击这个窗口上层的控件,然后可以添加QMenuBar QMenu QToolbar

2.使用动作编辑器(Action Editor)添加action

  • 在动作编辑器(Action Editor)中创建一个QAction。
  • 确保它不是任何一个QMenu 的一部分。

只有在actionEditor中创建的action才能被多个控件中引用

3.将 QAction 添加到多个菜单:

  • 在QMainWindow 的菜单栏中找到你想要添加动作的第一个菜单,然后拖拽动作到该菜单中。
  • 重复这个过程,将同一个动作拖拽到另一个菜单中。

4.设置响应事件

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

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

相关文章

CTF小工具

1 ciphey https://github.com/Ciphey/Ciphey Ciphey 是一个使用自然语言处理和人工智能的全自动解密/解码/破解工具。 简单地来讲,你只需要输入加密文本,它就能给你返回解密文本。就是这么牛逼。 有了Ciphey,你根本不需要知道你的密文是哪…

ros2_control【B站WMGIII教学学习记录】1

资源 https://www.bilibili.com/video/BV1ku411G7UR? 学习过程中存在bug,记录一下 1 Q:"package ‘joint_state_publisher_gui’ not found, searching: [/home A: sudo apt install ros-humble-joint-state-publisher2 https://fishros.org.cn/forum/to…

如何高效的压缩GIF图片?一键搞定GIF动图压缩 就是这么简单

一,引言 压缩GIF动图是一个常见的需求,无论是在社交媒体上分享动态表情,还是在网页设计中添加动态元素,GIF动图都扮演着重要的角色。然而,过大的GIF文件大小可能会导致加载速度慢,影响用户体验。因此&…

Github首页美化(updating)

Github首页美化 https://github.com/QInzhengk一、新建仓库二、美化Github首页主页访问量统计仓库状态统计常用语言占比统计社交链接 界面展示 https://github.com/QInzhengk 一、新建仓库 对Github首页进行美化,需要新建一个仓库名和自己 Github 用户名相同的仓库…

YOLC: You Only Look Clusters for Tiny Object Detection in Aerial Images

摘要 由于以下因素,从航拍图像中检测物体面临着重大挑战:1)航拍图像通常具有非常大的尺寸,通常有数百万甚至数亿像素,而计算资源有限。2)物体尺寸较小导致有效信息不足,无法进行有效检测。3)物体分布不均匀导致计算资源浪费。为了解决这些问题,我们提出YOLC(You Onl…

Python ADTK库:时间序列异常检测的利器

更多Python学习内容:ipengtao.com ADTK(Anomaly Detection Toolkit)是一个用于时间序列异常检测的Python库,提供了多种算法和工具,帮助用户识别和分析时间序列数据中的异常点和趋势变化。本文将详细介绍ADTK库的功能、…

2024年学浪视频怎么缓存

2024年已经到来,越来越多的人开始购买学浪视频,然而一些课程的时间限制使得许多人希望能够永久保存这些宝贵的学习资源。幸运的是,本文将向大家介绍一个解决方案——使用小浪助手工具来下载学浪视频,以便随时随地享受学习的乐趣。…

C++实战演练---负载均衡在线oj项目预热

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 前言 学习准备了快一年时间,心心念念的实战演练终于可以开始了,话不多说,直接进入主题…

从构成看自来水厂自动化控制系统的创新与发展

自来水厂自动化控制系统涵盖了多个关键组成部分,包括水管理云平台、供水监控系统以及供水调度平台。 系统内嵌了一系列自主创新的核心算法,这些算法结合了数学建模、机器仿真和流体力学等多元数据模型,以优化设备间的关联和控制关系&#xf…

Midjourney-01 初试上手 注册使用并生成你的第一张AI图片 详细流程 提示词 过程截图 生成结果 付费文生图的天花板!

背景介绍 Midjourney是一款基于人工智能技术的绘画软件,利用深度学习算法来辅助用户进行绘画创作。这款软件能够通过用户输入的文本描述生成图像,支持多种生成方式,包括文字生成图片、图片生成图片和混合图片生成图片。 图像生成方式&#…

华为外派伊拉克,一天补助6000元

大家好,我是YUAN哥! 最近有朋友询问关于华为外派伊拉克的补助情况,听说一天能拿到6000元,这听起来相当诱人,但真实性有待考证。 据我所知,华为对艰苦地区的外派员工确实有补助,但最高一天是100美…

Proxmox VE 实现企业微信通知

前言 主要实现获取系统信息发送给企业微信机器人。 企业微信机器人自动化获取PVE系统信息脚本编写 生成FIGlet和AOL宏字体 参考最终实现获取系统信息,获取到的信息发送给企业微信机器人进行输出企业微信机器人创建参考 更改以下脚本企业微信机器人地址企业微信机…

数控6面钻的优缺点

在木工、家具制造和建筑行业中,数控6面钻已成为一种革命性的工具。这种先进的机器以其高效、精准和多功能性受到了广大制造商的青睐。然而,就像任何技术产品一样,数控6面钻也有其优缺点。在本文中,我们将深入探讨数控6面钻的优缺点…

如何在React中构建动态下拉组件 - 解释React复合组件模式

下拉菜单长期以来一直是网站和应用程序中的重要组成部分。它们是用户交互的默默英雄,通过简单的点击或轻触默默地促进着无数的操作和决策。 今天你可能已经遇到了其中之一,无论是在你最喜爱的在线商店上选择类别,还是在注册表单上选择你的出…

106短信群发平台如此火热究竟有没有效?

106短信群发平台之所以如此火热,确实是因为它在多个方面展现出了显著的有效性。 首先,从发送速度和到达率来看,106短信平台表现优秀。无论是节假日还是平日,其发送速度都能保持在一个较快的水平,这对于验证码短信、通…

Mybatis源码学习系列之搭建源码阅读环境

1. 实验环境 jdk1.8.0_171apache-maven-3.5.4IntelliJ IDEA 2018mybatis-parent 31mybatis-3.5.4 2. 下载源码 先在官方GitHub下载对应的代码 git clone https://github.com/mybatis/parent git clone https://github.com/mybatis/mybatis-3mybatis3使用3.5.4版本&#xff…

【数据库教程】Navicat和在线phpMyAdmin如何连接远程服务器

文章目录 NavicatphpMyAdmin来源 有很多工具可以连接数据库,这里介绍两种,自行选择一种使用即可 Navicat 1、打开Navicat 2、点击连接,选择MySQL 3、输入数据库信息后点击测试连接(数据库信息请联系我) 4、点击确…

Java进阶-Stream流

概述 在Java8中,得益于lambda所带来的函数式编程,引入了一个全新的Stream流的概念目的:用于简化集合和数组操作的api 案例 需求:创建一个集合存储多个字符串元素,将集合中所有以“z”开头的元素存储到新的集合中&am…

C++ | Leetcode C++题解之第44题通配符匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {auto allStars [](const string& str, int left, int right) {for (int i left; i < right; i) {if (str[i] ! *) {return false;}}return true;};auto charMatch []…

LPA算法简介

1. 背景 标签传播算法(Label Propagation Algorithm)是一种基于图的半监督学习方法&#xff0c;其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。 2. 算法流程 1. 为每个节点随机的指定一个自己特有的标签&#xff1b; 2. 逐轮刷新所有节点的标签&#xff0…