【Qt窗口】—— 工具栏

news2024/9/22 1:54:05

 前情摘要:

工具栏相当于菜单栏中的众多快捷方式,毕竟很多操作都是通过菜单栏来直接访问的,但是可能会查找很长时间,首先就是查找在哪个菜单里面,打开菜单才能进一步操作。而工具栏则是把一些常用的操作都给列举出来,用到时只需一点即可产生效果。

目录

工具栏介绍

1.创建工具栏

2.设置停靠位置

3.设置浮动属性 

4.设置移动属性 

结论 


工具栏介绍

工具栏是应用程序中集成多种功能以实现快捷操作的区域。它可以存在一个或多个,或者完全不存在,因此它并非应用程序的必需部分。工具栏是一个可移动的界面部分,其组成部分可以是各种窗口元素,这些元素通常以图标形式的按钮呈现。下图展示了工具栏的布局示例:


1.创建工具栏

通过调用 QMainWindow 类的 addToolBar() 方法可以创建工具栏,每添加一个新的工具栏,都需要执行一次这个方法。

  • 如添加两个工具栏:

【注意】

  1.  添加菜单栏,使用的是 setMenuBar :因为菜单栏只有一个,重复设置,新的替换旧的;
  2.  添加工具栏,使用的是 addToolBar :工具栏可以有多个,重复设置,就会出现多个工具栏,不包含“替换”

工具栏由一系列的动作(QAction)组成。QAction 是一个可以被添加到菜单栏、工具栏或上下文菜单中的对象。创建动作并将其添加到工具栏的代码如下:

如果想看点击是实现的话,此处在添加槽函数即可完成一个简单的样例。具体如下:


2.设置停靠位置

在 Qt 中,除了创建工具栏和添加动作之外,还可以设置工具栏的停靠位置,以确保它出现在用户期望的位置,从而进一步优化用户体验。工具栏可以停靠在 QMainWindow 的四个边缘(上、下、左、右),也可以设置为浮动。

工具栏停靠位置的设置有两种方式:

  1. ⼀种是在创建工具栏的同时指定停靠的位置;
  2. 另⼀种是通过QToolBar类提供的 setAllowedAreas()函数来设置。

⽅式⼀:创建工具栏的同时指定其停靠的位置

在构建工具栏的过程中,可以同时指定其位置,其默认位置是位于窗口的顶部;如之前代码所示,默认显示在顶部。工具栏可以停靠的区域由 QToolBar 类的 allowAreas() 方法定义,其中可以设定的位置选项包括:

  • Qt::LeftToolBarArea 停靠在左侧
  • Qt::RightToolBarArea 停靠在右侧
  • Qt::TopToolBarArea 停靠在顶部
  • Qt::BottomToolBarArea 停靠在底部
  • Qt::AllToolBarAreas 以上四个位置都可停靠

示例如下:

其次,大家把鼠标放到最前面的几个点处,大家可以发现其实是可以拖动的:


⽅式⼆:使⽤QToolBar类提供的 setAllowedAreas()函数 设置停靠位置。

 【说明】

  1. 在创建工具栏的同时指定其停靠的位置,指的是程序运⾏时工具栏默认所在的位置;
  2. ⽽使⽤setAllowedAreas()函数设置停靠位置,指的是工具栏允许其所能停靠的位置。

3.设置浮动属性 

⼯具栏的浮动属性可以通过QToolBar类提供的setFloatable()函数来设置。setFloatable()函数原型为:

void setFloatable (bool floatable)

这个方法允许你指定工具栏是否可以被用户拖动以浮动在主窗口之上:

  1. 如果你希望工具栏可以浮动,应将此方法的参数设置为 true
  2. 如果希望工具栏固定,不可浮动,则设置为 false


4.设置移动属性
 

设置工具栏的移动属性可以通过QToolBar类提供的setMovable()函数来设置。setMovable()函数原型为:

void setMovable(bool movable)
  1. 禁止工具栏移动,可以将 setMovable() 方法的参数设置为 false。这样,工具栏将固定在当前位置,用户无法通过拖动来改变其位置;
  2. 相反,如果你希望工具栏保持可移动的默认行为,应将参数设置为 true

📌 说明:若设置工具栏为不移动状态,则设置其停靠位置的操作就不会⽣效,所以设置工具栏的移动属性类似于总开关的效果。


结论 

 Qt 工具栏是构建直观用户界面的强大工具,它通过提供快速访问常用功能的方式,极大地提升了应用的可用性。通过上述介绍,我们可以看到创建和定制工具栏在 Qt 中既简单又灵活。

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

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

相关文章

生产者与消费者模型

生产者与消费者模型 生产者:生产数据的线程,这类的线程负责从用户端、客户端接收数据,然后把数据Push到存储中介。 消费者:负责消耗数据的线程,对生产者线程生产的数据进行(判断、筛选、使用、响应、存储&…

C++必修:布隆过滤器的提出与实现

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 布隆过滤器的引入 在我们注册游戏或者社交账号时,我们可以自己设置…

科学重温柯南TV版:基于B站视频数据分析

麻鸭,四年过去了,失踪人口回归。 第一篇就决定是你了。 看了柯南M27剧场版后,萌生了重温TV版的念头,但是1191集(截止24/8/26)的体量太恐怖了,遂取点巧,综合大V建议(知乎;公众号)和视频网站数据…

基于asp.net的驾校管理系统附源码

这是一个基于asp.net的webform框架开发的BS架构的系统,详情如下: 项目下载链接 链接:https://pan.quark.cn/s/0679e783ef71

【设计模式】创建型模式——抽象工厂模式

抽象工厂模式 1. 模式定义2. 模式结构3. 实现3.1 实现抽象产品接口3.2 定义具体产品3.3 定义抽象工厂接口3.4 定义具体工厂3.5 客户端代码 4. 模式分析4.1 抽象工厂模式退化为工厂方法模式4.2 工厂方法模式退化为简单工厂模式 5. 模式特点5.1 优点5.2 缺点 6. 适用场景6.1 需要…

深入理解OJ编程中的输入输出:11个经典题目详解与技巧分享及stringstream,sort详解

文章目录 1.多组输入计算ab2.给定组数计算ab3.给定组数计算ab(如果为0则结束)4.计算一些列数的和(第一个数为0时结束)5.计算一些列数的和(告诉了有几组)6.计算一系列数的和(不告知几组和何时结束,每一组第一…

如何评估云服务器提供商可靠性与信誉度

在云计算时代,选择一个可靠和信誉良好的云服务器提供商对于个人用户和企业来说至关重要。以下是评估云服务器提供商可靠性与信誉度的关键指标和方法: 1. 服务水平协议(SLA): 可用性承诺: 查看云服务器提供…

服务器内存飙升分析小记

1. 写在最前面 这个繁忙的八月真的是转瞬即逝,我明明感觉似乎好像才八月刚开始,但是其实已经到了八月的尾巴。这个月本来想抽空整理一下学习 AI 模型相关的东西,奈何每天不是在查问题就是在查问题的路上,不是在修 Bug 就是在写 B…

AI Lossless Zoomer v3.1.0.0 — 超实用的AI无损图片放大工具

AI Lossless Zoomer 是一款基于腾讯开源 Real-ESRGAN 算法的 AI 图片无损放大工具,支持多线程和批量处理,具备自定义输出格式和路径等高级设置选项,并允许用户选择不同的 AI 引擎进行图片放大处理。此版本修复了一些小 bug,并增加…

Jhipster应用,cdn加速方案。

Jhipster, 采用springbootwebfluxreacttypescript技术栈。项目部署是采用k8shelm 部署在GCP上的,所以这个单体项目幕后是跑在pod上的。 项目上线后,发现单页面应用加载速度很慢,如图所示长时间处于加载状态: 仔细分析一下原因&am…

ESXi服务器无法安装Windows11:“不符合此版本的Windows所需最低系统要求“

目录 一、问题描述1.使用环境2.问题截图3.问题解析 二、解决方法Ⅰ1.按 ShiftF10 弹出命令提示符2.在弹出的Dos框中输入regedit,回车,进入注册表。3.打开HKEY_LOCAL_MACHINE\SYSTEM\Setup,并新建 LabConfig 的项,在 LabConfig 下创…

51单片机-静态数码管显示

时间&#xff1a;2024.8.29 作者&#xff1a;Whappy 目的&#xff1a;学习51单片机 代码&#xff1a; #include <REGX52.H> #include "intrins.h"unsigned char NixieTable[] {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79…

C++系列-STL容器之deque

STL容器之deque deque概括deque与vector内存管理的区别vector内存分配方式deque内存分配方式 deque与vector随机访问效率的区别deque与vector插入和删除操作的区别deque与vector适用场景 deque的构造函数deque的构造函数举例 deque的赋值操作deque容器的大小操作deque容器的插入…

瑞芯微RK3566开发板USB OTG模式介绍及命令切换,触觉智能EVB3566主板鸿蒙硬件厂商

一、USB OTG的模式 host模式&#xff08;下行&#xff09;&#xff1a;为u盘等设备供电&#xff0c;不可以进行调试&#xff0c;连接adb或者烧录等操作。 device模式&#xff08;上行&#xff09;&#xff1a;可以进行调试&#xff0c;连接adb或者烧录等操作&#xff0c;即US…

Delphi5实现主要——明细型数据库应用

文章目录 效果图主要——明细型数据库特点 数据库实现方式完整代码 效果图 主要——明细型数据库 在Delphi中&#xff0c;主要——明细型数据库是一种数据库应用程序的设计模式&#xff0c;它涉及到多个数据库表之间的关联操作&#xff0c;以实现对复杂数据结构的有效管理。这…

数据结构(邓俊辉)学习笔记】串 16——Karp-Rabin算法:串即是数

文章目录 1. 化串为数2. 凡物皆数3. 亦是数 1. 化串为数 接下来的这节&#xff0c;我们再来讨论一种十分另类的串匹配算法&#xff0c;也就是所谓的 Karp-Rabin 算法。回顾此前所介绍的几种串匹配算法&#xff0c;我们所面临的难题是一样的。也就是说在这里&#xff0c;我们每次…

ES配合高德地图JS-API实现地理位置查询

目录 实现功能点 技术选型 具体实现 Vue3整合高德地图JS API-2.0 添加商户&#xff1a;前端 添加商户&#xff1a;后端/ES 查询用户当前地理坐标 获取附近&#xff08;指定距离&#xff09;的商户 总结/测试Demo代码地址 测试概述&#xff1a;用户使用高德地图组件获取商户…

GPT实现的adb shell命令实现某音自动点赞和关注

摘要:这个可能是没啥用的自动点赞和关注功能,自娱自乐为主哈 具体可行性步骤如下: 1.打开手机的开发者选项,将指针位置的设置开关打开,目的是看触屏时的坐标值 2.随便打开一个抖音,找到点赞的爱心图标的坐标轴,并记下来,待会有用 备注:尽量获取爱心尖端的坐标值,由…

erlang学习:用OTP构建系统2,警报管理

今日学习用OTP构建系统的警报管理&#xff0c; 首先进行配置错误记录器 [{sasl,[{sasl_error_logger, false},{error_logger_mf_dir, "/code/erlang/erlangstudy"},{error_logger_mf_maxbytes, 10485760},{error_logger_mf_maxfiles, 10}]} ].警报处理器gen_event的…

【Material-UI】Slider 组件中的 Discrete Sliders 详解

文章目录 一、Slider 组件概述1. 组件介绍2. Discrete Sliders 的特点 二、Discrete Sliders 的基本用法1. step 属性2. marks 属性3. valueLabelDisplay 属性 三、深入理解 Discrete Sliders 的配置1. 自定义刻度标记2. 限制可选值3. 设置较小的步长4. 始终显示值标签 四、应用…