Qt —— 控件属性(二)

news/2025/1/30 10:35:04 标签: qt, 开发语言

一、windowTitle 窗口标题

1. 作用

windowTitle属性是对最顶层的窗口标题进行设置的,只对顶层窗口有效,对按钮等等无效。

2. API(接口)

setWindowTitle(QString类型) : 设置窗口标题的文本

ps:接口的介绍格式是伪代码,只是方便理解

3. 使用方式

可以直接在图形化界面当中找到windowTitle的属性,点击修改,也可以用代码的方式,用上面的接口去设置

二、 windowIcon 窗口图标

1. 作用

表示窗口的左上角的图标

2. API

windowIcon():获取到控件图标,返回QIcon对象。

setWindowIcon(QIcon):设置控件窗口图标,当然只有顶层窗口有效

QIcon:用来构造图标的结构体,其中有构造函数可以去根据图片文件路径去找到图片文件然后将图片构造成为一个图标。

3. 使用方式

我们根据其提供的接口,可以去选择自己喜欢的图片,然后将图片放到合适的路径下,然后构造QIcon对象去构建图标,然后将图标设置即可,但是通常我们会使用Qt提供的qrc机制,这是为了保证当你的程序打包发送给其他人后,图片资源找不到,或者图片位置发生变换,不见了之类的情况。

这里的qrc机制,就是给Qt项目引入一个额外的xml文件,在这个xml中把要使用的图片资源导入,并在xml中记录,Qt在编译该项目的时候,会根据qrc中描述的图片信息,找到内容,并提取出其二进制数据,并将该二进制数据,用C++代码的形式,非常暴力直接的记录下来,最终编译的时候会生成一个文件去记录这些图片的二进制数据,并一起编译到exe文件中。

这种方法优点是确保图片数据不会找不到或者丢失,但缺点则是,当视音频等数据过大时,暴力记录二进制数据的消耗非常大,因此无法导入过大的文件。

具体使用方法:

1. 建立xml文件 (以.qrc为后缀的)

2.  建立好后

这样就可以将图片资源导入到xml文件中。

三、windowOpacity 窗口透明度

1. 作用

这个窗口透明度就是这个顶层控件,包括其子控件的透明度,数值由【0.0,1.0】,用浮点数去记录,也就是百分比,当数值为0.0时就是全透明,1.0表示完全不透明。

2. API

windowOpacity():获取到控件的透明度数值(不透明程度数值),会返回一个浮点数表示数值

setWindowOpacity(float n):设置控件的透明度,n为透明度数值(【0.0,1.0】),数值不在无非则无任何响应

3. 使用方式

可以直接在可视化界面找到该属性调整,也可以用接口去控制,简单写个用按钮控制当前窗口透明度的简单小例子:

四、cursor 光标图案

1. 作用

该属性表示当鼠标挪到当前控件时的光标,默认都是箭头。

2. API

cursor():获取到当前widget的cursor属性,返回QCursor对象。

setCursor(QCursor) : 设置光标形状

QGuiApplication::setOverrideCursor(QCursor):设置全局光标的形状,对整个程序中的控件都生效,覆盖setCursor的效果。

QCursor(Qt::内置光标对象,x,y) :描述光标的结构体类型,Qt有很多内置的经典光标,也可以自定义的去上传光标图案,默认点击效果为图案的左上角位置,但也可以通过传参x,y去调整有效点击位置。

QPixmap(图片资源的路径):通常通过这个来表示图片资源。

3. 使用方法

(1)使用Qt内置的经典光标,则只需要在图形化界面开发的地方找到该属性,然后去选择即可,当然也可以通过代码的方式,先是构建光标对象QCursor,填入你想要的内置图案和有效点击位置坐标(可以使用默认的图案左上角),构建好后用setCursor方法设置即可。

内置光标类型表:

(2)如果需要自定义光标,首先我们需要将图片资源导入到qrc文件中,这里推荐一个免费好用的网址,该网址专门是下载各种类型的自定义光标图案的,叫阿里巴巴矢量图标库。找到自己心仪的 图标并下载好后,构建QPixmap,将文件资源加载到QPixmap对象中,然后和上面使用内置方法一样,构建QCursor对象,然后用setCursor接口设置即可。

五、font 文本文字属性

1. 作用

font属性是关于文本属性的统称,其中包括文字的大小、字体、粗细等等各种属性,这些属性都用QFont进行描述,然后设置到font属性中。

2. API

font():获取当前控件的字体信息,返回QFont;

setFont(QFont):设置当前widget字体信息

QFont:描述字体各种属性的结构体,例如大小、字体、粗细等等

3. 使用方式

先整理一个关于QFont里面有哪些描述字体属性的类型:

这些关于字体的属性,如果在用户使用过程中不涉及更改,可以直接在图形化开发界面去找到属性去调整即可,当然也可以通过代码的方式,设置到QFont中去,一般步骤是:先获取到原先字体的QFont对象,然后根据自己要调整的属性,进行调整,然后将新的QFont重新设置到控件的font中。

六、toolTip 提示框

1. 作用

鼠标悬停在控件上时,会弹出一些文本提示,这个就是用这个属性设置的

类似这种感觉

2. API

setToolTip(QString):设置提示的内容,直接用字符串的方式设置;

setToolDuring(n毫秒):设置提示文本框弹出显示的时间,单位为毫秒;

3. 使用方式

直接用接口的方式去对需要提示框的控件设置即可,若需要文本框一直存在不消失,设置一个特别特别长的时间就可以了。

七、focusPolicy 控件获取到焦点的策略

1. 作用

设置控件获取焦点的策略,只有当一个控件获得“焦点”,才可以去接受用户对其的操作,比如一个按钮,当我点击它的时候,其实就是获得了焦点,又比如一个输入框,我需要点击它,让其获得焦点,才可以对其进行输入,而获得焦点的方式,就是由这个属性去控制的。

2. API

focusPolicy():获取该控件的focusPolicy,返回Qt::FocusPolicy

setFocusPolicy(Qt::FocusPolicy):设置控件的FocusPolicy

FocusPolicy:实际是个枚举类型,它包含了所有的焦点获取策略;

3. 使用方式

FocusPolicy内枚举的元素比较常见的有:

根据不同的应用场景,可以查官方文档去找到合适的焦点获取策略去设置到控件的FocusPolicy属性中。

八、styleSheet 通过QSS设置widget的样式

1. 介绍

styleSheet是一个通过QSS设置widget样式的一个属性,这个QSS是参考CSS,即层叠样式表去Qt内弄的一套在设置网页样式的方式。这种以键值对的方式去一键设置好各种关于这个控件需要设置的属性。

2. API

setStyleSheet(QString):通过键值对的方式去设置控件的各项属性。

3. 使用方式

可以通过接口在代码上去使用,也可以在可视化界面找到styleSheet属性去操作

至于有哪些键值对则是通过查文档,在具体实际开发需求中,根据需要去找文档,通过经验积累常用的,而不可能全部记住。

九、取色器

说个关于颜色属性的题外话,通常计算机用RGB表示法表示一个颜色,例如:

白色:rgb(0,0,0);

黑色:#FFFFFF;

可以用rgb()的格式,也可以用#加十六进制的格式,去表示一个颜色,而通常我们要去获取一个颜色的rgb,往往可以借助取色器,这个取色器不需要专门下载什么软件,在QQ的截图中,截图界面自带有取色器,将光标挪到某个像素块上后,QQ截图自带的取色器就会帮你获取到某个颜色的rgb,非常好用。

总结

本章节整理了关于Qt控件的常见属性,在今后的学习和开发,遇到没见过的也可以通过查官方文档的方式去了解,慢慢积累经验,这里只是对常见的属性进行简单整理学习,也是通过了解这些控件属性的使用方式,大概摸索出一个对于属性要怎么去了解,怎么使用的一个感觉,结合具体的再今后进行学习就会轻松很多。


http://www.niftyadmin.cn/n/5837748.html

相关文章

SQL Server查询计划操作符(7.3)——查询计划相关操作符(5)

7.3. 查询计划相关操作符 38)Flow Distinct:该操作符扫描其输入并对其去重。该操作符从其输入得到每行数据时即将其返回(除非其为重复数据行,此时,该数据行会被抛弃),而Distinct操作符在产生任何输出前将消费所有输入。该操作符为逻辑操作符。该操作符具体如图7.2-38中…

常见的同态加密算法收集

随着对crypten与密码学的了解,我们将逐渐深入学习相关知识。今天,我们将跟随同态加密的发展历程对相关算法进行简单的收集整理 。 目录 同态加密概念 RSA算法 ElGamal算法 ELGamal签名算法 Paillier算法 BGN方案 Gentry 方案 BGV 方案 BFV 方案…

多项日常使用测试,带你了解如何选择AI工具 Deepseek VS ChatGpt VS Claude

多项日常使用测试,带你了解如何选择AI工具 Deepseek VS ChatGpt VS Claude 注:因为考虑到绝大部分人的使用,我这里所用的模型均为免费模型。官方可访问的。ChatGPT这里用的是4o Ai对话,编程一直以来都是人们所讨论的话题。Ai的出现…

react中如何获取dom元素

实现代码 const inputRef useRef(null) inputRef.current.focus()

《深度揭秘:TPU张量计算架构如何重塑深度学习运算》

在深度学习领域,计算性能始终是推动技术发展的关键因素。从传统CPU到GPU,再到如今大放异彩的TPU(张量处理单元),每一次硬件架构的革新都为深度学习带来了质的飞跃。今天,就让我们深入探讨TPU的张量计算架构…

qt-C++笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别

qt-C笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别 code review! 参考笔记 1.qt-C笔记之重写QGraphicsItem的paint方法(自定义QGraphicsItem) 文章目录 qt-C笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphic…

MySQL 9.2.0 的功能

MySQL 9.2.0 的功能 MySQL 9.2.0 的功能新增、弃用和删除内容如下: 新增功能 权限新增12:引入了CREATE_SPATIAL_REFERENCE_SYSTEM权限,拥有该权限的用户可执行CREATE SPATIAL REFERENCE SYSTEM、CREATE OR REPLACE SPATIAL REFERENCE SYSTEM…

网络工程师 (8)存储管理

一、页式存储基本原理 (一)内存划分 页式存储首先将内存物理空间划分成大小相等的存储块,这些块通常被称为“页帧”或“物理页”。每个页帧的大小是固定的,例如常见的页帧大小有4KB、8KB等,这个大小由操作系统决定。同…