Qt常用控件之QWidget(三)

Qt常用控件之QWidget(三)

🌟🌟hello,各位读者大大们你们好呀🌟🌟

🚀🚀系列专栏:【Qt的学习】

📝📝本篇内容:windowOpacity;cursor;图形化界面设置cursor;代码设置cursor;font;图形化界面设置font;代码设置font;在浏览器中查看字体的属性

⬆⬆⬆⬆上一篇:Qt练习小程序(无法拒绝的按钮)

💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.windowOpacity

接下来要讲的这个属性是用来调节透明度的,但还是要先知道一下它的发音

它也有两个API,分别是获取不透明值和设置不透明值

函数声明 函数说明
qreal windowOpacity() const 获取当前的不透明度,返回类型是qreal,其实就是浮点类型,取值的范围是0.0-1.0区间,其中0.0表示全透明,1.0表示完全不透明
void setWindowOpacity(qreal level) 设置不透明度

来个简单的代码演示


我们可以仔细观察一下,它增加或减少不透明度时打印的数值并不是精确的,这主要是因为浮点数在底层存储的时候并不是以精确数值存储的,但是这种方法运算快,占用空间小。因此在我们有的时候需要进行浮点数相等判断时,不能直接使用"浮点数+浮点数==浮点数"来判断。

其实一旦超过我们的不透明范围值(0.0-1.0)后,继续增加或减少都不会有任何效果,但是我们的代码中还是非常有必要加上范围判断,这种被称之为是double check(双重检查)。这主要是为了保证它的安全性,因为作为使用者你不敢保证库中的代码有没有对此进行过超出范围的判断,而库的编写者也不敢保证使用者一定会写判断范围代码,因此双方都进行判断,即使一方出现问题,也不至于造成事故。

2.cursor

这个属性中文翻译是光标的意思,简单来说就是当鼠标在某个控件上停留时就会显示出的形状,就像我们现在在这里输入时,显示的光标是Ⅰ,而选择别的内容的时候又变成箭头,所以说同一个界面中,不同的控件可以设置不同的光标这个属性也需要看一下它的读音

接下来看一下它的API

函数声明 函数说明
QCursor cursor() const 获取当前控件设置的cursor属性,返回值是QCursor
void setCursor(const QCursor &) 设置控件的光标,当鼠标停留在此控件上时,会显示出光标的形状
QGuiApplication::setOverrideCursor(const QCursor& cursor) 设置全局光标的形状,对整个程序中的所有 widget 都会⽣效,覆盖上⾯的 setCursor 设置的内容

2.1.图形化界面设置cursor

不得不承认图形化非常方便,只需要将属性列表中的cursor的值进行选择即可

2.2.代码设置cursor

我们先用代码演示一下使用Qt内置的光标如何用代码实现

代码非常简单,就两句话,我们还可以通过WaitCursor按住ctrl进行跳转查看其他的内置光标

也可以看一下cursor的构造函数是怎么样的,就能理解它这里的参数传递情况

QCursor也支持我们使用自定义的图片来作为光标,它的用法其实和之前讲的窗口图标是类似的道理,将图片导入qrc进行管理,我们就可以使用代码基于图片构造出光标对象进行设置,接下来用代码来演示一下

创建新的qrc文件




最后是这个界面就说明设置成功了

接下来就是代码编写了

其中还牵扯到了另一个新的类QPixmap,它的作用还是很大的,用来修改编辑图片,其中还用到了调整图片大小的函数,函数说明见下图

由于光标无法进行截屏或者录屏,就没法展示最终效果了

这里还有一个点注意就是我们的鼠标点击时,默认是图片中间位置

我们可以进行通过参数进行修改

修改我们的代码

3.font

font是用来设置字体的属性的

函数声明 函数说明
const QFont & font() const 获取当前控件的字体属性,返回QFont类型,QFont类型是字体属性的集合
void setFont(const QFont &) 设置当前控件字体属性
QFont的属性 属性说明
family 字体族,设置字体,比如"楷体"
pointSize 字体大小
weight 字体粗细.粗细程度用数值控制,范围[0,99],数值越大越粗
bold 是否加粗. 设置为 true, 相当于 weight 为 75. 设置为 false 相当于weight 为 50
italic 是否倾斜
underline 是否带有下划线
strikeOut 是否带有删除线

3.1.图形化界面设置font

其实图形化界面很方便,只需要在右侧的属性面板进行选择和勾选就可以设置字体的属性。

并且我们可以发现我们的Qt Designer能够对界面上属性设置支持"实时预览",改了啥属性都能立马显示出来

3.2.代码设置font

在一般的简单的程序中可以直接使用图形化,但是假设如果我们的程序在运行过程中需要修改文字的相关属性就只能使用代码了
其实我们讲了那么多的内容,也能发现规律,在前面我们谈到的QFont的一些属性,要进行设置的时候,只需要在前面加上"set"即可成为一个设置成员函数,并且Qt中大部分类和函数都是有规律可循的。并且不知道大家有没有注意到,最近写的控件属性类都没有进行设置进对象树,都是直接在栈上开辟,这主要是这些类都是设置进了控件内部,因此即使释放了内存也没关系。

3.3.在浏览器中查看字体的属性

假设你在一些网页上看到某些文字的颜色或者属性很好看,那此时我们也可以通过在网页页面进行鼠标右键点击检查进入开发者模式,并点击左上角的按钮,此时就可以将鼠标放到某些文字上观察属性

🌸🌸Qt常用控件之QWidget(三)大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

相关推荐
小狗爱吃黄桃罐头21 分钟前
《C++ Primer Plus》模板类 Template 课本实验
c++
无限进步_29 分钟前
C语言数组元素删除算法详解:从基础实现到性能优化
c语言·开发语言·windows·git·算法·github·visual studio
月殇_木言36 分钟前
Python期末复习
开发语言·python
松涛和鸣36 分钟前
16、C 语言高级指针与结构体
linux·c语言·开发语言·数据结构·git·算法
毕设源码余学姐1 小时前
计算机毕设 java 中医药药材分类采购网站 SSM 框架药材交易平台 Java 开发的分类采购与订单管理系统
java·开发语言·课程设计
降临-max2 小时前
JavaSE---网络编程
java·开发语言·网络·笔记·学习
湖边看客2 小时前
antd x6 + vue3
开发语言·javascript·vue.js
小离a_a2 小时前
flex垂直布局,容器间距相等
开发语言·javascript·ecmascript
傻啦嘿哟2 小时前
物流爬虫实战:某丰快递信息实时追踪技术全解析
java·开发语言·数据库
码力码力我爱你3 小时前
Harmony OS C++实战
开发语言·c++