【QT5 实现“上图下文”,带图标的按键样式-toolbutton-学习笔记-记录-基础样例】实现方式之一

news2025/1/7 18:12:19

【QT5 实现“上图下文”,带图标的按键样式-toolbutton-学习笔记-记录-基础样例】

  • 1、前言
  • 2、实验环境
  • 3、效果展示
  • 4、实验步骤
      • 第一步:新建工程-并运行。
      • 第二步:上网找图标文件
      • 第四步:(非必须)为了对比图标不同结尾图片(PNG)与图标(ICO)是否有区别。
      • 第五步:新建资源目录-并添加文件
      • 第六步:在xxx.ui文件中,拉入6六个toolbutton,并且设置。
        • (1)设置资源图片
        • (2) 设置图片大小
        • (3)设置文字摆放
        • (4)设则是否无边框
  • 5、实验代码
  • 6、细节部分
    • (1)PushButton 与 ToolButton区别,PushButton是否能实现ToolButton效果?
    • (2)选择图片时,选择资源 与 选择资源 有什么异同?
    • (3)结合自己项目时,有时鼠标放在图标上时,默认放置,图片按键效果不显现,需要自己加下样式表。
  • 7、总结

1、前言

最近想做个上图下文的按键,尝试了很多方式,都不是很符合需求,在大佬的指点下,自己一尝试果然可以,并且做了对比测试,决定将这种方式记录下来。

另外需要做一些说明的是,我认为这是实现的一种方式,有其他实现途径,并且你决定这种方式是你需求情况下,实验代码和细节也需要注意些。

2、实验环境

实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:window环境
QT软件版本:qt 5.14.2
在这里插入图片描述

3、效果展示

如下图,为效果展示:
在这里插入图片描述

4、实验步骤

第一步:新建工程-并运行。

这部还是比较简单的,如果不明白,可以找我往期文章看看,或者上网查查,这里不多叙述,直接看效果,如下图。
在这里插入图片描述

第二步:上网找图标文件

网上找图标,一般很多人都会推荐“阿里矢量图库”
连接如下:https://www.iconfont.cn/
在这里插入图片描述
这里我找了一组图片,下载后,如下图所示。
在这里插入图片描述
不要用中文,所以修改名称后,放在工程下,等待添加
在这里插入图片描述

第四步:(非必须)为了对比图标不同结尾图片(PNG)与图标(ICO)是否有区别。

我这里将PNG图片生成了ICO,这里其实也有讲过,有个网站直接可以帮助我们生成ICO。
生成网站:https://www.aconvert.com/cn/image/
在这里插入图片描述
转换完后,直接下载。
在这里插入图片描述

第五步:新建资源目录-并添加文件

这里在自己其它文章也说过,或者网,上可以查到,大致讲下。
在这里插入图片描述
点完后,会让你输入名字,如下图》
在这里插入图片描述
然后添加目录名字和文件,如下图。
在这里插入图片描述
添加图片文件如下。
在这里插入图片描述

第六步:在xxx.ui文件中,拉入6六个toolbutton,并且设置。

加如6个toolbutton,并且设置下布局,设置命名等。
在这里插入图片描述

如同上述没有问题的,在没有加图标时,运行效果应该如下。

在这里插入图片描述
这里做不同设置,最终样式可能不同,所以使用6个tool按键,来对比它们不同,每个设置又有不同影响,一旦设置不同,就可能达不到效果。

  1. 设置资源图片
  2. 设置图片大小
  3. 设置文字摆放
  4. 设则是否无边框

(1)设置资源图片

这里展示“工具按键1”的具体设置,其它就举一反三了,只是设置不同,用来观察效果的。
在这里插入图片描述

(2) 设置图片大小

(3)设置文字摆放

(4)设则是否无边框

剩下设置,一张图片就能方下,直接一张图片列出,其它就是设置不太想到,细节直接看代码。
在这里插入图片描述

5、实验代码

代码连接:https://download.csdn.net/download/qq_22146161/87388724

6、细节部分

(1)PushButton 与 ToolButton区别,PushButton是否能实现ToolButton效果?

目前在网上查找的资料来看,除非你用自定义控件,否则PushButton,不能实现和ToolButton一样效果,PushButton只能横着放图片。

(2)选择图片时,选择资源 与 选择资源 有什么异同?

在这里插入图片描述
实现方式多种多样,我这种不是唯一一种,加入工程后,直接选择资源…,比较好找图片,如果选择文件…,需要自己在代码里添加一下,如下。
在这里插入图片描述
这里就会有个问题,如何确定,自己资源文件目录,或者说地址,这里直接在突破上右键,能点出来
在这里插入图片描述

(3)结合自己项目时,有时鼠标放在图标上时,默认放置,图片按键效果不显现,需要自己加下样式表。


QToolButton{background-color:rgb(225, 225, 225);}
QToolButton:hover{background-color:rgb(192, 200, 188);}
QToolButton:pressed{background-color:rgb(177,211,254);}

7、总结

细节还是挺多的,建议多尝试吧,自己也是尝试了很多。

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

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

相关文章

23种设计模式(三)——观察者模式【组件协作】

文章目录意图什么时候使用观察者使用观察者模式也有两个重点问题要解决:1)广播链的问题2)异步处理问题真实世界类比观察者模式的实现观察者模式的优缺点亦称:事件订阅者、监听者、Event-Subscriber、Listener、Observer 意图 在许…

mybatis之动态SQL测试环境的搭建以及if语句的使用

动态SQL: 动态 SQL 是 MyBatis 的强大特性之一,如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号&a…

Vue CLI

介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 vue/cli 实现的交互式的项目脚手架。 通过 vue/cli vue/cli-service-global实现的零配置原型开发。 一个运行时依赖 (vue/cli-service),该依赖: 可升级&a…

腾讯安全发布《2022年DDoS攻击威胁报告》:DDoS威胁4年持续增长

随着全球数字化蓬勃发展,互联网的应用范围不断扩大,并逐渐普及到各行各业的生产、管理、运营等方面,网络设备可用带宽伴随应用需求的增加而增加,方便了企业业务开展的同时也扩大了安全威胁面,引来黑产的觊觎。DDoS攻击…

Java使用流去除集合中某个字段为空的对象

文章目录0 写在前面1 情景复刻2 解决方案3 写在最后0 写在前面 最近写了一些业务逻辑,调试的时候总会报空指针异常。 Java中空指针异常是危险恐怖分子,最好不要碰见他。所以有些时候,处理集合中的数据时,特定情况下需要略过一些数…

十五天学会Autodesk Inventor,看完这一系列就够了(二),软件界面

众所周知,Autocad是一款用于二维绘图、详细绘制、设计文档和基本三维设计,现已经成为国际上广为流行的绘图工具。Autodesk Inventor软件也是美国AutoDesk公司推出的三维可视化实体模拟软件。因为很多人都熟悉Autocad,所以再学习Inventor&…

RK3568工业级核心板高温运行测试

Rockchip RK3568 是一款通用型MPU,产品集成GPU、NPU,支持4K、HDMI、LVDS、MIPI、PCIe3.0、USB3.0、千兆以太网、CAN-BUS、UART等丰富外设接口。 RK3568的高温工作情况如何呢?本文将基于万象奥科HD-RK3568-CORE 系列核心板做详细高温测试&…

接口幂等性设计

幂等性: 对于同一个操作发起一次请求或者多次请求,得到的结果都是一样的,不会因为请求多次而出现异常现象。 场景: 用户多次请求,比如重复点击页面上的按钮网络异常,右移网络原因导致在一定时间内未返回调用成功的信息&#xff…

《JavaScript 核心原理解析》学习笔记 Day 1 delete 引用与值

关于引用与值:在 javaScript 中一个表达式的值或者说结果,可能是引用 / 值。所以 x x ,是将右侧表达式x的值赋值给左侧表达式x所指的引用。注意此处的引用并非为到具体内存地址的指向,而是指表达式与其值的一种关联。 这一关联即…

Android 音视频——直播推流技术指南

一、推流架构 推流SDK客户端的模块主要有三个,推流采集端、队列控制模块、推流端。其中每个模块的主要流程如下,本文的主要目的就是拆分推流流程, 1.1 采集端 视频采集:通过Camera采集视频。 音频采集:通过麦克风采…

SSM 05 SpringBoot yaml mybatisplus

01-SpringBoot工程入门案例开发步骤SpringBoot 是 Pivotal 团队提供的全新框架,设计目的是简化 Spring 应用的初始搭建以及开发过程。使用了 Spring 框架后已经简化了我们的开发。而 SpringBoot 又是对 Spring 开发进行简化的,可想而知 SpringBoot使用的…

linux挂载新磁盘

一、查看磁盘挂载状态: fdisk -l df -h 二、为其中一个磁盘创建新的分区,参考: linux用fdisk创建分区,在Linux下用fdisk创建分区_weixin_39968410的博客-CSDN博客 sudo fdisk /dev/nvme0n1 1. 创建主分区: -----------------…

第8章 NVS

NVS Blob块存储 1. 演示app_main任务栈溢出 2. 设置app_main任务栈大小 打开menuconfig&#xff0c;输入main&#xff0c;如下图所示 默认栈大小为3584字节&#xff0c;这里改为35840字节&#xff0c;重新编译 3. Blob存储结果 #include <stdio.h> #include <st…

使用nginx搭建HTTP FLV流媒体服务器

使用nginx搭建HTTP FLV流媒体服务器 文章目录使用nginx搭建HTTP FLV流媒体服务器1 HTTP FLV简介2 HTTP FLV流媒体服务搭建3 结果验证1 HTTP FLV简介 前文已经介绍了RTSP、RTMP、HLS的流媒体协议&#xff0c;还有一种比较常见的流媒体协议HTTP FLV&#xff0c;其兼具RTMP的实时…

Kettle源码启动运行

Kettle源码运行环境如下&#xff1a; windows10 Kettle 9.3.0.2 Java JDK 11 IntelliJ IDEA 2021.2.2 (Community Edition) Maven 3.8.1&#xff08;版本不需要太高 &#xff09; 导入kettle到IDEA 可通过kettle的GIthub地址获取 kettle的克隆连接&#xff0c;或直接下载ZIP压…

python2和python3环境安装

一、背景 ​ 众所周知&#xff0c;python当前有两大主流版本&#xff0c;分别是Python2和Python3系列&#xff0c;其中Python3因为对Python2做了较大的优化&#xff0c;使得Python3不会向下兼容&#xff0c;但是工作和学习中&#xff0c;有很多项目需要Python2的环境&#xff…

SAP 物料账未分摊差异分析

今天在开发处理未分摊差异程序的时候&#xff0c;偶然在网络上看到一篇这样的文章&#xff0c;挺有意思的&#xff0c;特意转载过来&#xff0c;方便大伙学习之用&#xff0c;若有异议&#xff0c;立即撤回。 利用CKMLCP运行完物料分类账之后&#xff0c;差异科目余额通常为0&…

Golang网络聊天室案例

1.聊天室设计分析 一. 概览 实现 个网络聊天室&#xff08;群&#xff09; 功能分析&#xff1a; 上线下线聊天&#xff0c;其他人&#xff0c;自己都可以看到聊天消息查询当前聊天室用户名字 who可以修改自己名字 rename | Duke超时踢出 技术点分析&#xff1a; 1 . sock …

Notion 汉化Macwindows客户端

1、注册/登录账号&#xff1a; https://www.notion.so/zh-cn 2、下载桌面应用&#xff1a; https://www.notion.so/desktop 3、下载汉化js插件 地址&#xff1a;https://github.com/Reamd7/notion-zh_CN 点击最后一次更新的标签&#xff0c;下载【 notion-zh_CN.js 】文件 …

[激光原理与应用-64]:激光器-器件 - 光电二极管

第1章 概述光电二极管&#xff08;Photo-Diode&#xff09;和普通二极管一样&#xff0c;也是由一个PN结组成的半导体器件&#xff0c;也具有单方向导电特性。但在电路中它不是作整流元件&#xff0c;而是把光信号转换成电信号的光电传感器件。普通二极管在反向电压作用时处于截…