【Qt】常见控件 —— QWidget(下)

news2024/11/15 11:06:50

文章目录

  • QWidget 的 windowlcon 属性
  • 使用 qrc文件管理资源
    • qrc的使用方式
      • 在项目中创建 qrc文件
      • 把图片 导入到qrc 文件中
  • QWidget 的 windowOpacity属性

QWidget 的 windowlcon 属性

windowlcon 表示 一个窗口的图标
( 只能针对 顶层窗口使用 )


windowlcon() 表示 获取到控件的窗口图标 返回 QIcon 对象 (QIcon表示 一个图标)
setwindowlcon(const Qlcon& icon) 设置控件的窗口图标


想要设置 图标 需要先准备一张图片
并找到对应存放的位置


之前推荐使用堆上创建对象 是因为要确保当前控件的生命周期是足够的 以及 要通过 Qt对象树 来释放对象

QIcon 自身是一个比较小的对象
创建出来的目的 是要设置到某个 QWidget 里面
QIcon 对象本身释放不释放 不影响图标最终的显示

Qlcon 不支持对象树 无法给他执行父对象
所以更 推荐在栈上创建


在构造函数中指定图片的路径
通过 setwindowlcon 函数 将 icon 对象传递进去


运行程序后发现 窗口图标 变为 玫瑰花图片


如果对应的路径写错 就导致找不到该图片 从而继续使用系统自带的图片
所以 相比于绝对路径的方式 使用 相对路径 是更好的
相对路径 是以给定目录为基准 以 . 或者… 的方式开头

假设基准目录为 D:/
给定相对路径 ./th.jpg -> 在基准目录(D:/)直接找 th.jpg


Qt中提供 了 qrc 机制 (就可以从根本生解决问题)
1.确保图片所在路径在目标用户机器上存在
2.确保图片不会被用户搞没了

给Qt项目引入一个额外的xml文件 (后缀名使用 .qrc表示)
在这个xml中把要使用图片资源导入进来 并且在xml中进行记录

Qt在编译项目时 就会根据qrc中描述的图片信息 找到图片内容 并且提取出图片的二进制数据
把这些二进制数据 转成 C++代码 最终编译到exe中
qrc缺点: 无法导入太大的资源文件


使用 qrc文件管理资源

qrc的使用方式

在项目中创建 qrc文件

创建 qrc文件(确保名字不带中文 和 特殊符号)

选择 Qt 中的 Qt Resouce File 点击选择


最终生成当前 qrc 文件 以及界面


把图片 导入到qrc 文件中

(1) 先创建一个前缀 (prefix)

可以把 前缀 理解成 虚拟的目录
这个目录没有在你的电脑上真实存在 是Qt自己抽象出来的
(为了方便 Qt代码中访问到这个图片 Qt就自己抽象出了 虚拟的目录)


点击 Add Prefix 将前缀 名字修改为 /


(2) 把刚才使用的图片导入到资源文件中

Add Files 在创建 Add Prefix 之前是禁用的
创建好 prefix 之后就可以使用了
添加的文件 就是添加到 prefix 下面的


点击 Add Files 会弹出对话框 得到的目录就是当前代码所在的目录


导入图片时 需要确保导入的图片 必须在 resource.qrc 文件的同级目录 或者 同级目录的子目录

所以就可以把 处于D盘的 th.jpg 图片 拷贝到 当前目录中


此时导入成功


当代码中需要访问 qrc中管理的文件时 就需要在路径上带有 : 前缀
由于 创建的前缀为 / 图片文件名为 th.jpg

: / th.jpg

QWidget 的 windowOpacity属性

windowOpacity 属性 可以设置 当前窗口的透明度

windowOpacity() 获取到控件的不透明值 返回float 取值为 0.0 -> 1.0 其中 0.0 表示 全透明 1.0 表示 完全不透明

setwindowOpacity( float n) 设置控件的不透明值


设置两个 按钮 表示 增加透明度 和 减少透明度


通过 windowOpacity 获取到 Widget 的透明度 在判断是否在 0.0 到 1.0 之间
增加透明度 则 -0.1 减少透明度 则 +0.1
再通过 setWindowOpacity 函数 设置 透明度


当不断增加透明度时 发现 整个对话框是可以透过去的

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

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

相关文章

吴恩达机器学习课后作业-05偏差与方差

偏差与方差 题目欠拟合改进欠拟合影响偏差和方差因素训练集拟合情况训练集和测试集代价函数选择最优lamda 整体代码 训练集:训练模型 验证集︰模型选择,模型的最终优化 测试集:利用训练好的模型测试其泛化能力 #训练集 x_train,y_train data[X],data[ y]#验证集 …

【C++ Primer Plus习题】4.9

问题: 解答: #include <iostream> using namespace std;typedef struct _CandyBar {string brand;float weight;int calorie; }CandyBar;int main() {CandyBar* snack new CandyBar[3];snack[0] {"德芙",2.1,20};snack[1] { "箭牌",2.2,16 };sna…

鸿蒙(API 12 Beta3版)【使用Image完成图片编码】图片开发指导依赖JS对象

开发者可以调用本模块的Native API接口&#xff0c;完成图片编码&#xff0c;即将PixelMap压缩成不同格式的存档图片。 当前支持编码为JPEG、WebP 和 PNG 格式。 适用场景 图片编码转换。 通过传入图片源ImageSource&#xff0c;封装成想要的格式。 图片编辑 编辑PixelMap后…

【C# 】使用List<实体类>

1. 使用List<实体类> 要在C#中使用List<EntityTemp>并实现查找数据输出&#xff0c;首先需要定义EntityTemp类&#xff0c;并创建一个List<EntityTemp>类型的列表。然后&#xff0c;你可以使用LINQ或其他方法来查找和输出数据。 假设EntityTemp类具有一个…

最新最全的Pytest接口自动化测试框架教程

pytest编写的规则&#xff1a; 1、测试文件以test_开头&#xff08;以_test结尾也可以&#xff09; 2、测试类以Test开头&#xff0c;并且不能带有__init__方法 3、测试函数以test_开头 4、断言必须使用assert pytest.main([-s,-v]) &#xff1a;用来执行测试用例 -s 打印prin…

pcdn闲置带宽被动收入必看教程。第六讲:交换机配置实战篇

pcdn闲置带宽被动收入必看教程。第六讲&#xff1a;交换机配置实战篇 本章节将介绍如何通过简单的步骤配置交换机&#xff0c;以汇聚所有宽带并集中管理速率&#xff0c;最终接入服务器或软路由&#xff0c;实现远程管理分配速率给具体的服务器或小主机等。 交换机配置步骤 1…

Redis:Redis为什么快

文章目录 一、Redis为什么快二、Redis的单线程模型三、高效的数据结构1、跳表 四、内存的高效使用五、I/O多路复用机制六、网络优化 一、Redis为什么快 单机的Redis每秒可以支撑十几万的并发&#xff0c;相对于MySQL来说&#xff0c;性能是MySQL的十几倍。速度快主要有一下因素…

Docker快速上手

Docker 前言一、基本组成二、常用命令2.1 Docker服务2.2 image相关命令2.3 Container相关命令 三、Docker Volume 容器卷3.1 匿名挂载3.2 具名挂载 四、Docker 网络模式4.1 bridge桥接模式4.2 host主机模式4.3 None模式4.4 Container模式4.5 Customer模式 前言 本篇文章不再赘…

2024计算机技术与软件专业技术资格考试-系统规划与管理(高级)

2024年报名时间&#xff1a;2024年8月22日10:00-9月2日16:00 2024年考试时间&#xff1a;2024年11月9日-11月12日 计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试是原中国计算机软件专业技术资格和水平考试&#xff08;简称软件考试&#xff09;的完善与发展。…

windows 10x64 22H2专业纯净版2028.8.24

Windows 10 22H2专业版19045.3208&#xff0c;据传这版最稳定&#xff0c;速度快。原版制作&#xff0c;打齐KB5028166和服务堆栈更新KB5028318补丁。 禁用了系统升级&#xff0c;删除Windows Defender&#xff0c;禁用打印机服务&#xff0c;需要安装打印机的自行打开服务Prin…

逆序对的数量——归并排序

逆序对的数量 归并排序的解法&#xff0c;今天自己拿前台样例模拟了一遍才算是入门了归并排序的感觉 #include<bits/stdc.h>using namespace std; typedef long long ll; const int N1e510; int a[N]; int temp[N]; int k;ll mergesort(int q[],int l,int r) {if(l>r)…

string类的使用与实现

标准库中的string类 string类(了解) string类的文档介绍 注意&#xff1a;在使用string类时&#xff0c;必须包含#include头文件以及using namespace std; auto和范围for 在了解string的用法前在学习一个知识&#xff1b; auto关键字 auto是作为一个新的类型指示符来指示编译器…

若依AjaxResult的get(AjaxResult.CODE_TAG)有时返回的200,有时返回的字符串“200“

这个项目是多模块项目&#xff0c;之前通过web json格式&#xff0c;多模块之前传输用的RestTemplate&#xff0c;但是对接其它系统时要用XML就添加了XML的依赖。 原来 原来ajaxResult.get(AjaxResult.CODE_TAG).equals(200)能返回true&#xff0c; 现在get(AjaxResult.CODE…

3.2.6 盘古开天地start_kernel

点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 3.2 内核初始化(盘古开天地) 3.2.1 内核初始化的神话 3.2.2 从头 (Head)开始 3.2.3 从头初始化到身体 3.2.4 宇之内存的空分复用 3.2.5 宙之CPU的时分复用 3.2.6 盘古开天地start_kernel 3.2.6 盘古开天地start_…

abc 366 E+F(曼哈顿距离 x y 两个坐标分别计算)(贪心+01背包)

E题&#xff1a; 题意&#xff1a;给定的 xi yi 。求有多少点 到给人 若干定点 的曼哈顿距离 和 小于等于D. 因为D 最大时 1e6,-1e6<xi<1e6。 所以 可能的 点 的 x 的范围是 [-2e6 2e6] 同理 y 的 范围 一样。 将 x y 分开讨论。 我们可以枚举 某个x 的 个数&#xff0…

聚类:k-Means 和 k-Medoid

1. 前言 在《对静态分析缺陷报告进行聚类&#xff0c;以降低维护成本》 提到使用 k-Medoid 通过相似缺陷的聚类&#xff0c;来减少程序员对大量缺陷分析的工作量。 k-Medoid 和传统的 k-Means 聚类算法有什么差别呢&#xff1f; 简单的说&#xff0c;K-Medoid 算法是一种基于…

golang RSA 解密前端jsencrypt发送的数据时异常 crypto/rsa: decryption error 解决方法

golang中 RSA解密前端&#xff08;jsencrypt&#xff09;发来的密文后出现 "crypto/rsa: decryption error" &#xff0c; 这个问题首先需要确认你的私匙和公匙是否匹配&#xff0c; 如果匹配 那检查入参数据类型&#xff0c; 前端发送来的rsa加密后的数据一般都是…

《黑神话:悟空》到底是用什么语言开发的

《黑神话&#xff1a;悟空》&#xff08;Black Myth: Wukong&#xff09;是一款由中国游戏开发公司游戏科学&#xff08;Game Science&#xff09;开发的动作角色扮演游戏。该游戏主要使用了以下技术栈&#xff1a; 开发引擎&#xff1a;游戏科学公司使用了**虚幻引擎5&#x…

blender--二维平面图标变为三维网格

有时候我们希望把一些二维图片能变成三维网格&#xff0c;本案例我们就针对这一场景进行实现。 首先我们可以先去找一张需要的图片(注意&#xff0c;本例需要图片是svg格式)&#xff0c;我们可以在阿里巴巴矢量图标库等平台进行搜索&#xff0c;如图所示&#xff0c;找到需要的…

Python优化算法12——蝴蝶优化算法(BOA)

科研里面优化算法都用的多&#xff0c;尤其是各种动物园里面的智能仿生优化算法&#xff0c;但是目前都是MATLAB的代码多&#xff0c;python几乎没有什么包&#xff0c;这次把优化算法系列的代码都从底层手写开始。 需要看以前的优化算法文章可以参考&#xff1a;Python优化算…