工具按钮 QToolButton

news2024/10/1 20:59:25

工具按钮常常用来显示图标,然后添加到工具栏中

常用属性和方法

文本

设置和获取文本

//设置和获取文本
QString text() const
void setText(const QString &text)

图片

设置和获取图片

//设置和获取图片
QIcon icon() const
void setIcon(const QIcon &icon)

 获取和设置图片尺寸

//设置和获取图片尺寸
QSize iconSize() const
void setIconSize(const QSize &size)

按钮风格

设置和获取工具按钮的风格

Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle style)

style有4种取值:

  • Qt::ToolButtonIconOnly,只显示图片,
  • Qt::ToolButtonTextOnly,只显示文本,
  • Qt::ToolButtonTextBesideIcon,文本在图片的右侧,
  • Qt::ToolButtonTextUnderIcon,文本在图片的下面,
  • Qt::ToolButtonFollowStyle,跟随系统样式

箭头类型

可以设置箭头,注意:设置箭头后,设置的图标也就不会再显示了,被箭头代替

//获取和设置箭头的类型
Qt::ArrowType arrowType() const
void setArrowType(Qt::ArrowType type)

type有4种取值:

  • Qt::NoArrow,没有箭头
  • Qt::UpArrow,上箭头,
  • Qt::DownArrow,下箭头,
  • Qt::LeftArrow,左箭头,
  • Qt::RightArrow,右箭头,

自动凸出

就是鼠标悬浮时,有一个凸出的效果(该方法还会使得按钮的边框消失

//设置和获取自动凸出
bool autoRaise() const
void setAutoRaise(bool enable)

获取和设置按钮关联的菜单(按钮都有的方法)

//获取和设置按钮关联的菜单
QMenu *QToolButton::menu() const
void QToolButton::setMenu(QMenu *menu)

 菜单弹出模式

//获取和设置菜单的弹出模式
QToolButton::ToolButtonPopupMode popupMode() const
void setPopupMode(QToolButton::ToolButtonPopupMode mode)

 mode有三个取值

  • QToolButton::DelayedPopup ,长按按钮一小会儿后才会弹出菜单,(注意右下角多了1个小三角)

  • QToolButton::MenuButtonPopup,会出现1个小三角,点击小三角立即弹出菜单

  • QToolButton::InstantPopup,点击按钮立即弹出

 举例

使用ToolButton来填充工具栏

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QToolButton>
#include<QMenu>
#include<QToolBar>


class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr)  : QWidget(parent)
    {
        resize(500,500);

        QMenu* menu=new QMenu(this);
        QAction* a1=new QAction("1号",this);
        QAction* a2=new QAction("2号",this);
        QAction* a3=new QAction("3号",this);
        menu->addAction(a1);
        menu->addAction(a2);
        menu->addAction(a3);

        QToolBar* tool_bar=new QToolBar(this);

        //1号按钮
        QToolButton* tool_btn1=new QToolButton(this);
        tool_btn1->setIcon(QIcon(":/11.png"));
        tool_btn1->setIconSize(QSize(30,30));
        //只显示图标
        tool_btn1->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);
        tool_btn1->setAutoRaise(true);
        //设置悬浮提示
        tool_btn1->setToolTip("相册");
        tool_bar->addWidget(tool_btn1);

        //2号按钮
        QToolButton* tool_btn2=new QToolButton(this);
        tool_btn2->setIcon(QIcon(":/22.png"));
        tool_btn2->setIconSize(QSize(30,30));
        //只显示图标
        tool_btn2->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);
        tool_btn2->setAutoRaise(true);
        //设置悬浮提示
        tool_btn2->setToolTip("消息");
        tool_btn2->setMenu(menu);
        //按小箭头立即弹出菜单
        tool_btn2->setPopupMode(QToolButton::MenuButtonPopup);
        tool_bar->addWidget(tool_btn2);

        //3号按钮
        QToolButton* tool_btn3=new QToolButton(this);
        tool_btn3->setIcon(QIcon(":/33.png"));
        tool_btn3->setIconSize(QSize(30,30));
        //只显示图标
        tool_btn3->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);
        tool_btn3->setAutoRaise(true);
        //设置悬浮提示
        tool_btn3->setToolTip("摄影");
        tool_btn3->setMenu(menu);
        //按小箭头立即弹出菜单
        tool_btn3->setPopupMode(QToolButton::MenuButtonPopup);
        tool_bar->addWidget(tool_btn3);




    }
    ~Widget()=default;
};
#endif // WIDGET_H

 学习链接:https://github.com/0voice

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

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

相关文章

【STM32单片机_(HAL库)】4-0【定时器TIM】定时器中断配置步骤

定时器工作原理 定时器计数模式 定时器溢出时间计算 定时器中断实验配置步骤 msp 函数是对 MCU 相关的硬件进行初始化设置&#xff0c;通常被设计用于处理特定硬件外设或功能的底层初始化工作。

Spring Boot驱动的足球青训俱乐部管理解决方案

1 绪论 1.1研究背景 随着科技的发展&#xff0c;计算机的应用&#xff0c;人们的生活方方面面都和互联网密不可分。计算机的普及使得人们的生活更加方便快捷&#xff0c;网络也遍及到我们生活的每个角落&#xff0c;二十一世纪信息化时代的到来&#xff0c;随着社会科技的不断…

Python地理数据处理 27:基于Arcpy批量处理已矫正的worldclim2.1未来气候数据——投影、重采样、多波段拆分以及裁剪

Arcpy批量处理已矫正的worldclim2.1未来气候数据 1. 写在前面2.实现代码 1. 写在前面 前面我写了一篇关于如何使用ArcGIS自带的Python工具处理worldclim数据的多波段数据的文章&#xff0c;而这只是处理该数据的其中一步。要想得到满足要求的数据&#xff0c;还需要其他操作&am…

自闭症寄宿学校 vs. 日常教育:为孩子提供更多可能

在探索自闭症儿童的教育路径时&#xff0c;家长们往往面临一个重大的选择&#xff1a;是选择传统的日常教育环境&#xff0c;还是寻找专为自闭症儿童设计的寄宿学校&#xff1f;广州的星贝育园自闭症儿童寄宿制学校&#xff0c;以其独特的教育模式和全方位的关怀体系&#xff0…

大数据毕业设计选题推荐-个性化图书推荐系统-Python数据可视化-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

python中的find函数怎么用

Python find() 方法检测字符串中是否包含子字符串 str &#xff0c;如果指定 beg&#xff08;开始&#xff09; 和 end&#xff08;结束&#xff09; 范围&#xff0c;则检查是否包含在指定范围内&#xff0c;如果包含子字符串返回开始的索引值&#xff0c;否则返回-1。 语法 …

Netty系列-6 Netty消息处理流程

背景 前文介绍了Netty服务端的启动流程&#xff0c;服务端启动后可以处理客户端发送的请求&#xff0c;包括连接请求和普通消息。 1.处理连接 当客户端有连接请求到达时&#xff0c;服务器会创建通道并将通道注册到选择器上&#xff0c;处理逻辑与NIO中实现完全一致。 详细流…

虚拟机、ubantu不能连接网络,解决办法

虚拟机、ubantu不能连接网络&#xff0c;解决办法 物理机OS&#xff1a; [Windows10 专业版](https://so.csdn.net/so/search?qWindows10 专业版&spm1001.2101.3001.7020) 虚拟机平台&#xff1a; VMware Workstation 16 Pro 虚拟机OS&#xff1a; Ubuntu 18.04 自动配…

英语音标与重弱读

英语中&#xff0c;比较重要的是音标。但事实上&#xff0c;我们对音标的学习还是比较少的&#xff0c;对它的理解也是比较少的。 一、音标 2个半元音 [w][j] 5个长元音&#xff1a;[i:] [ə:] [ɔ:] [u:] [ɑ:] 7个短元音&#xff1a;[i] [ə] [ɔ] [u] [] [e] [ʌ] 8个双元音…

车辆重识别(2020NIPS去噪扩散概率模型)论文阅读2024/9/27

[2] Denoising Diffusion Probabilistic Models 作者&#xff1a;Jonathan Ho Ajay Jain Pieter Abbeel 单位&#xff1a;加州大学伯克利分校 摘要&#xff1a; 我们提出了高质量的图像合成结果使用扩散概率模型&#xff0c;一类潜变量模型从非平衡热力学的考虑启发。我们的最…

【mmengine】配置器(config)(入门)读取与使用

一、 介绍 MMEngine 实现了抽象的配置类&#xff08;Config&#xff09;&#xff0c;为用户提供统一的配置访问接口。 配置类能够支持不同格式的配置文件&#xff0c;包括 python&#xff0c;json&#xff0c;yaml&#xff0c;用户可以根据需求选择自己偏好的格式。 配置类提供…

leetcode力扣刷题系列——【座位预约管理系统】

题目 请你设计一个管理 n 个座位预约的系统&#xff0c;座位编号从 1 到 n 。 请你实现 SeatManager 类&#xff1a; SeatManager(int n) 初始化一个 SeatManager 对象&#xff0c;它管理从 1 到 n 编号的 n 个座位。所有座位初始都是可预约的。 int reserve() 返回可以预约座…

单调队列应用介绍

单调队列应用介绍 定义应用场景实现模板具体示例滑动窗口最大值问题描述问题分析代码实现带限制的子序列和问题描述问题分析代码实现跳跃游戏问题描述问题分析代码实现定义 队列(Queue)是另一种操作受限的线性表,只允许元素从队列的一端进,另一端出,具有先进先出(FIFO)的特…

系统信息规划-系统架构师(七十四)

1前驱图 解析&#xff1a; 当S1执行完&#xff0c;C1S2并行执行&#xff0c;C1和S2执行完&#xff0c;P1,C2,S3并行执行&#xff0c;同理&#xff0c;P2C3并行执行。 直接制约则表示C1和P1受S1制约。 间接则代表S2和S3受S1制约。 2系统移植也是系统构建的一种实现方…

学习记录:js算法(五十一):统计二叉树中好节点的数目

文章目录 统计二叉树中好节点的数目网上思路 总结 统计二叉树中好节点的数目 给你一棵根为 root 的二叉树&#xff0c;请你返回二叉树中好节点的数目。 「好节点」X 定义为&#xff1a;从根到该节点 X 所经过的节点中&#xff0c;没有任何节点的值大于 X 的值。 图一&#xff1…

长江存储致态TiPlus7100 4TB满盘读写测试:性能几乎没有下降

一、前言&#xff1a;看看满盘状态下致态TiPlus7100 4TB性能会如何&#xff01; 现在还有很多同学对于长江存储品牌的存储产品不太信任&#xff0c;在选择SSD时会优先考虑三星、西数这样的品牌。 有鉴于此&#xff0c;我们此次会将手上的长江存储致态TiPlus7100 4TB SSD进行更严…

【STM32单片机_(HAL库)】4-2-1【定时器TIM】定时器输出PWM实现呼吸灯实验

1.硬件 STM32单片机最小系统LED灯模块 2.软件 pwm驱动文件添加定时器HAL驱动层文件添加GPIO常用函数定时器输出PWM配置步骤main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "pwm.h"int main(void) {HA…

音视频入门基础:FLV专题(10)——Script Tag实例分析

一、引言 在《音视频入门基础&#xff1a;FLV专题&#xff08;9&#xff09;——Script Tag简介》中对FLV文件的Script Tag进行了简介。下面用一个具体的例子来对Script Tag进行分析。 二、Script Tag的Tag header实例分析 用notepad打开《音视频入门基础&#xff1a;FLV专题…

鸿蒙跨端实践-JS虚拟机架构实现

作者&#xff1a;京东科技 杜强强 前言 在Roma跨端方案中&#xff0c;JS虚拟机是框架的核心&#xff0c;负责执行动态化的JS代码。在Android平台采用了基于V8的J2V8&#xff0c;iOS平台则使用了系统自带的JSCore&#xff0c;而在HarmonyOS中&#xff0c;由于业界无类似的框架&a…

C++11_左值引用与右值引用

在C11之前&#xff0c;是没有右值引用的概念的&#xff0c;在C11之后才新增了右值引用。其实无论是左值引用还是右值引用都是给对象取别名。 认识左值和右值 什么是左值&#xff1f; 左值是一个表示数据的表达式(如变量名或解引用的指针)&#xff0c;我们可以获取它的地址可…