当前位置: 首页 > article >正文

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.kler.cn/a/517447.html

相关文章:

  • (2)STM32 USB设备开发-USB虚拟串口
  • Three城市引擎地图插件Geo-3d
  • STM32 GPIO配置 点亮LED灯
  • Golang 生态学习
  • vim如何显示行号
  • 数字图像处理:实验五
  • C++的new和delete
  • C#集合排序的三种方法(List<T>.Sort、LINQ 的 OrderBy、IComparable<T> 接口)
  • 前端开发常用的设计模式有哪些
  • 机器学习-学习类型
  • Mysql意向锁
  • 深入解析 Linux 内核中的 InfiniBand 驱动接口:ib_verbs.h
  • 二叉树相关oj题 1. 检查两颗树是否相同。
  • 多线程详解——IntentService工作原理(源码详解)
  • PC端实现PDF预览(支持后端返回文件流 || 返回文件URL)
  • 【竞技宝】DOTA2:NAVI junior被ESL取消参赛资格
  • springfox-swagger-ui 3.0.0 配置
  • 无监督学习:聚类、异常检测
  • C++AVL树(二)详解
  • 港科夜闻 | 香港科大获三千万基金资助,开发人工智能英语评估及学习系统,供全港中学生免费使用...
  • PostgreSQL中级专家是什么意思?
  • AI问答:在后端开发语境中 VO 是什么 / Value Object / 值对象
  • 第12章 volatile关键字的介绍(Java高并发编程详解:多线程与系统设计)
  • Lua语言的图形用户界面
  • Vue3 插槽(Slots)用法总结
  • 一组开源、免费、Metro风格的 WPF UI 控件库