文章目录

  • qt常用控件--01
    • 上一篇文章的补充
    • windowTitle属性
    • windowIcon属性
    • windowOpaCity属性
    • cursor属性
    • font属性
    • 结语

很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!!
在这里插入图片描述
今天我们进一步c++11中常见的新增表达
作者:٩( ‘ω’ )و260
我的专栏:qt,Linux,C++进阶,C++初阶,数据结构初阶,题海探骊,c语言
欢迎点赞,关注!!

qt常用控件–01

继上章,我们已经讲解了两个有关QWidget中的属性,分别是enable属性和geometry属性,我们将来介绍新的几个属性

上一篇文章的补充

关于window frame对geometry的影响:
在这里插入图片描述
window frame包含最小化,最大化,关闭等操作,即qt运行界面最上方的这一栏以及最左侧和最右侧都有这样的一块细边。这个东西是系统自带的。
再来看这样的一个图:
在这里插入图片描述
最左上角是windowframe的原点,而下方一点是Widget的原点~~
所以在设置坐标时,有一个setGeometry接口,还有一个setFrameGeometry接口,总之,如果设置控件的位置的话,需要考虑到window frame的影响
来看一个示例:
在这里插入图片描述
其实不是的,我们来看,在创建rect1和rect2的时候,我放在了Widget
的构造函数中,此时我的整个面板都没有构造好,怎么可能会有windowframe呢?
我们只需要来添加一个按钮即可:
因为此时如果用户点击按钮,说明此时按钮出现在了面板上,说明此时面板已经构建成功了,来看结果:
在这里插入图片描述
多出来的部分就是系统加的窗口栏和左右细边栏~~

windowTitle属性

api接口:
在这里插入图片描述

结论:windowTitle属性只针对顶部窗口级别生效,对Widget类别是不生效的。

来看代码:
在这里插入图片描述

结论:这里有点鸡肋,即虽然我们代码使用错误,但是qt还是不会报错,这样就不易发现错误

windowIcon属性

api接口:
在这里插入图片描述
这里图标包含:程序运行的图标,程序运行时的图标等等,来看下例:
在这里插入图片描述

结论:windowIcon对顶部窗口级别才生效,对普通Widget类别不生效

即:在qt中,我们可以修改上述程序运行时的图标~
如何修改呢?
我们先要准备一张图片:
这里我准备了一张篮球的图片,具体自己想要的图片可以去到阿里巴巴矢量图标库中自取 ~
我们直接来看结果:
在这里插入图片描述
我们创建OIcon对象为什么是在栈上创建,而不是在堆上创建,难道栈中的图片销毁了还能够显示吗?

结论:1:QIcon,以及后面的QCursor,QFont,QPixMap这些类默认不支持添加到对象树上,无法指定父类对象,同时,不管这些对象释不释放,其中的图片资源都不会销毁!!
2:这里寻找文件的方式需要添加一个路径,而且,这个路径不能带有中文

当然,我们这里填写的是绝对路径,也可以填相对路径,以 . (一个点:表示当前路径)和 … (两个点:表示上一级路径)。

又有一个问题了?当我们写的程序发布给用户的时候,能够保证用户在这个路径下也有这个图片吗?就算保证有了,难道用户不会误删吗?

所以,最后一个方式也是最常用的方式qrc机制:
即我们将图片信息给提取出来,将图片信息转换成二进制数字放到编译的c++代码中,即和exe文件融为一体了。这样这个图片信息能和exe文件同生共死!!
步骤:创建xml文件,后缀为qrc->在该文件中加入图片信息->qt项目去访问这个文件信息即可;
下面直接展示步骤:
在这里插入图片描述
随后我们必须在弹出的这个项目界面文件夹中添加该图片,即必须在同级文件中或者是改级下一级的子文件中添加该图片
在这里插入图片描述
先来看结果:
在这里插入图片描述

总结:添加资源之后,qt项目文件想要去访问xml文件中的资源,应写为“:+ 前缀 + 文件名” ,“:”表示需要去访问xml文件中的内容了,然后再写出资源中的文件名即可。其实这里qt创建了一个虚拟目录,本质上其实是没有的
其实这个文件中存储图片的信息就是一个数组,里面存储的是16进制信息

windowOpaCity属性

api接口:
在这里插入图片描述
我们直接来使用代码举例,这里我使用两个PushButton并关联上对应的槽函数:
在这里插入图片描述
此时我们来看打印日志:
在这里插入图片描述
我们发现这里不是呈现0.1的形式增加或减少的,其实这是数据在内存中的存储方式不同,分为整形在内存中存储和浮点数在内存中存储。这里不再细细说明,只需要记得,浮点数在内存中的存储很多时候都是近似值,所以,浮点数不适合比较大小,如0.1 + 0.2 == 0.3编译器会返回false

这里还有一个细节,在setWindowPoacity()函数中,本身就有判断现在这个浮点数是否合法,即我把if判断条件语句去掉之后,仍然不会报错,是因为内部自己已经判断了,这是防御性编程的结果,即不管外界用户输入这个浮点数怎样,都是能够使程序运行的。

cursor属性

api接口:
在这里插入图片描述
这里还是设置光标,上面的windowIcon属性是设置程序运行时的光标,这里我们是设置的鼠标悬停在改控件上的光标,同理,这里我们仍然需要采用qrc机制

其实在qt中可以直接修改这个光标,在qt designer中,控件的属性中就有这样的一栏:
在这里插入图片描述
但是其中的图标确实有些年代的气息~~
我们直接使用qrc进制,来制造我们想要的鼠标悬停在该控件上的图标。

因为无法截图显示,只能同学们自行验证,如何觉得图片太大,可以使用QPixmap中的scaled函数来执行缩放,同时,因为鼠标变化,默认热点是在左上角,但是也可以通过QPixmap对象构造Qcursor对象时,指定热点位置,单位仍然是像素。这里的热点是鼠标点击的那个点~~

来看代码:
在这里插入图片描述

font属性

api接口:
在这里插入图片描述
关于QFont这个类,里面包含了这个字体信息,包含字体大小,粗细,斜体,下划线,删除线等等:
在这里插入图片描述
当然,这些字体信息也是能够在控件属性中通过图形化界面的方式来修改的,也可以通过代码的方式。

我们直接来通过代码的形式:
在这里插入图片描述

结语

今天的内容分享到这里,不足之处欢迎大家留言指出,感谢大家支持!!
旦旦而学之,久而不怠焉,迄乎成,而亦不知其昏与庸也!!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 中 string 类的解析及简易自我实现

目录 引言 标准库中的 string 类 功能概述 常见操作示例 自我实现简易 string 类 代码结构概述 1. String11.h 头文件 类的成员变量 迭代器相关 构造函数和析构函数 基本访问和修改方法 赋值运算符重载 内存管理和扩容 以下代码在.cpp文件中解析: 2. String11.…

计算机的性能指标(选择题0~1题无大题)

存储器的性能指标 总容量存储单元个数*存储字长 bit 例:MAR16位,MDR16位 总容量2的16次方*16bit 补充: n个二进制位就有2的n次方不同的状态 一般描述文件大小容量单位 2的10次方:K 2的20次方:M 2的…

React 核心原理与Fiber架构

目录 一、虚拟 DOM 二、Diffing 算法 三、Fiber 架构 四、渲染流程 1. Render 阶段(可中断异步过程) 2. Commit 阶段(同步不可中断) 五、时间切片(Time Slicing) 六、核心流程步骤总结 1. 状态更新…

【破局痛点,赋能未来】领码 SPARK:铸就企业业务永续进化的智慧引擎—— 深度剖析持续演进之道,引领数字化新范式

摘要 在瞬息万变的数字时代,企业对业务连续性、敏捷创新及高效运营的需求日益迫切。领码 SPARK 融合平台,秉持“持续演进”这一核心理念,以 iPaaS 与 aPaaS 为双擎驱动,深度融合元数据驱动、智能端口调度、自动化灰度切换、AI 智…

掌握C++核心特性

目标: 掌握C核心特性,为嵌入式开发打基础 好的,我来为你详细梳理一下 继承与多态、虚函数 相关的知识点,包括单继承、多继承、虚函数表机制、纯虚函数与抽象类、动态绑定。以下内容适合中等难度层次的理解,便于考试复…

python的高校教师资源管理系统

目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理,难度适中&#xf…

Java Collections工具类:高效集合操作

Collections工具类概述 Collections是Java提供的集合操作工具类&#xff0c;位于java.util包中&#xff0c;包含大量静态方法&#xff0c;用于对List、Set、Map等集合进行排序、查找、替换、同步化等操作。 常用方法及代码示例 排序操作 sort(List<T> list)&#xff1a…

vue指令总结

vue指令总结 一、总述 二、代码实现&#xff08;内含大量注释&#xff09; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>vue入门</title><!-- 使用Vue 3官方CDN --><script src"https://unpkg.c…

RUP——统一软件开发过程

RUP概述 RUP&#xff08;Rational Unified Process&#xff09;&#xff0c;统一软件开发过程&#xff0c;统一软件过程是一个面向对象且基于网络的程序开发方法论。 在RUP中采用“41”视图模型来描述软件系统的体系结构。“41”视图包括逻辑视图、实现视图、进程视图、部署视…

SpringBoot电脑商城项目--增加减少购物车商品数量

1. 持久层 1.1 规划sql语句 执行更新t_cart表记录的num值根据cid查询购物车的数据是否存在 select * from t_cart where cid#{cid} 1.2 接口和抽象方法 /*** 获取购物车中商品的数据总数* return 购物车中商品的数据总数*/Cart findByCid(Integer cid); 1.3 xml文件中sql映射…

零基础学习Redis(13) -- Java使用Redis命令

上期我们学习了如何使用Java连接到redis&#xff0c;这期我们来学习如何在java中使用redis中的一些命令 1. set/get 可以看到jedis类中提供了很多set方法 public static void test1(Jedis jedis) {jedis.flushAll();jedis.set("key1", "v1");jedis.set(&q…

解决OSS存储桶未创建导致的XML错误

前言 在Java开发中&#xff0c;集成对象存储服务&#xff08;OSS&#xff09;时&#xff0c;开发者常会遇到一个令人困惑的错误提示&#xff1a; “This XML file does not appear to have any style information associated with it. The document tree is shown below.” 此…

Spring 表达式语言(SpEL)深度解析:从基础到高级实战指南

目录 一、SpEL是什么&#xff1f;为什么需要它&#xff1f; 核心价值&#xff1a; 典型应用场景&#xff1a; 二、基础语法快速入门 1. 表达式解析基础 2. 字面量表示 3. 属性访问 三、SpEL核心特性详解 1. 集合操作 2. 方法调用 3. 运算符大全 4. 类型操作 四、Sp…

算法导论第二十四章 深度学习前沿:从序列建模到创造式AI

第二十四章 深度学习前沿&#xff1a;从序列建模到创造式AI 算法的进化正在重新定义人工智能的边界 深度学习作为机器学习领域最活跃的分支&#xff0c;正以惊人的速度推动着人工智能的发展。本章将深入探讨五大前沿方向&#xff0c;通过原理分析、代码实现和应用场景展示&…

抽象工厂设计模式

1.问题背景&#xff1a; 现在有两个产品(Product)分别是手机壳(PhoneCase)和耳机(EarPhone)&#xff0c;但是他们会来自于各个生产厂商&#xff0c;比如说Apple和Android等等 那么至少会有四个产品&#xff0c;分别是安卓手机壳&#xff0c;安卓耳机&#xff0c;苹果手机壳&a…

GESP 3级 C++ 知识点总结

根据GESP考试大纲 (2024年3月版)&#xff0c;帮大家总结一下GESP 3级 C语言的知识点&#xff1a; 核心目标&#xff1a; 掌握C程序的基本结构&#xff0c;理解并能运用基础的编程概念解决稍复杂的问题&#xff0c;重点是函数、一维数组和字符串处理。 主要知识点模块&#x…

腾讯云主动型云蜜罐技术解析:云原生威胁狩猎的革新实践(基于腾讯云开发者社区技术网页与行业实践)

摘要 腾讯云主动型云蜜罐&#xff08;Active Cloud Honeypot&#xff09;通过动态诱捕机制和云原生架构&#xff0c;在威胁检测效率、攻击链还原深度、防御联动实时性等维度实现突破。相较于传统蜜罐&#xff0c;其核心优势体现在&#xff1a; 部署效率&#xff1a;分钟级完成…

企业微信wecom/jssdk的使用(入门)

概述 记录一个企业微信jssdk的使用&#xff0c;因为要用到图片上传、扫描二维码等工具。项目是uniapp开发的h5项目&#xff0c;fastadmin&#xff08;thinkphp5&#xff09;后端 先看官方文档 https://developer.work.weixin.qq.com/document/path/90547#%E5%BA%94%E7%94%A8…

大零售生态下开源链动2+1模式、AI智能名片与S2B2C商城小程序的协同创新研究

摘要&#xff1a;在流量红利消退、零售形态多元化的背景下&#xff0c;大零售生态成为商业发展的新趋势。本文聚焦开源链动21模式、AI智能名片与S2B2C商城小程序在零售领域的协同应用&#xff0c;探讨其如何打破传统零售边界&#xff0c;实现流量变现与用户资产化。研究表明&am…

Scrapy全流程(一)

创建一个scrapy项目:scrapy startproject mySpider 生成一个爬虫:scrapy genspider douban movie.douban.com 提取数据:完善spider&#xff0c;使用xpath等方法 保存数据:pipeline中保存数据 2 创建scrapy项目 下面以抓取豆瓣top250来学习scrapy的入门使用&#xff1a;豆瓣…