【Qt】QWidget中的常见属性及其功能(一)

news2024/12/15 13:38:53

目录

一、 enabled

例子:

二、geometry

例子:

window fram

例子 :

四、windowTiltle

五、windowIcon

例子:

qrc机制

创建qrc文件

例子:


qt中的很多内置类都是继承自QWidget的,因此熟悉QWidget的常见属性及其功能是非常有用的。

一、 enabled

设置控件是否可以使用。true表示可以使用;false表示不可以使用。

例子:

有两个按钮,点击第一个按钮后窗口标题发生改变,点击第二个按钮会使第一个按钮在可使用和不可使用状态之间切换。

API

 isEnabled():获取控件是否可用,可用返回true,不可用返回false。

setEnabled(bool enable):设置控件的可用与不可用状态的。

注意:如果一个Widget(控件)被禁用那么这个控件中的子元素也会被禁用。

二、geometry

设置控件的位置和尺寸。

 x:横坐标。y:纵坐标。width:宽度。height:高度。

geometry():获取到控件的位置和尺寸,返回一个QRect类型的对象,QRect中包含:x、y、width、height。其中x,y是控件左上角相对于父控件的坐标。

setgeometry(QRect)setgeometry(int x,int y,int width,int height):设置控件的位置和尺寸,通过QRect设置,也可以分四个属性单独进行设置。

例子:

创建五个按钮,通过点击后四个按钮对第一个按钮进行上下左右平移。

注意:如果使用通过向setGeometry()传入QRect类来设置控件位置而不是通过分四个属性单独进行设置,那么如果改变QRect中的y则QRect中的heigt也会改变。比如QRect中的下x()+5那么QRect中的width()会-5,如果通过该方法改变控件位置必须对QRect中的height()或width()也要操作。如上图中注释的代码块。

window fram

如果Widget(控件)作为一个窗口(带有标题栏、最大化、最小化、关闭按钮),那么计算该Widget就有两种情况:不包含window frame、不包含window frame。

其中Geometry()和frameGeometry()都会一个QRect,表示控件的位置和尺寸。

Geometry()返回的QRect不包含window frame。

frameGeometry()返回的QRect包含window frame。

注意:调用窗口Widget的frameGeometry()或Geometry()返回的QRect中的x,y坐标值都是相对于电脑屏幕左上角的位置。如果在窗口中创建一个按钮,然后调用按钮的frameGeometry()或Geometry()返回的QRect类型对象都是一样的,因为按钮控件没有framewindow。

例子 :

先在窗口Widget构造函数中打印该窗口控件分别调用frameGeometry()和Geometry()返回的QRect对象,然后点击窗口控件中的一个按钮,在控制台终端打印该窗口控件分别调用frameGeometry()和Geometry()返回的QRect对象。

可以看到在构造函数中得到的窗口Widget的QRect是一样的,但是点击按钮后,在槽函数中打印出的QRect不一样。这是因为在构造函数中窗口Widget刚刚创建出来,还没有挂到对象树上,也就没有frame window,调用槽函数时窗口Widget已经挂在了对象树上因此就有了frame window。

四、windowTiltle

设置窗口标题。

windowTitle():获取窗口控件的标题。

setWindowTitle(const QString& title):修改窗口控件的标题。

注意:如果是窗口Widget调用才会有效果,其他子Widget(窗口中的其他控件)这个操作无任何效果。

五、windowIcon

设置窗口图标。

windowIcon():获取控件的窗口图标,返回QIcon类型对象。

setwindowIcon(const QIcon& icon):设置控件的窗口图标。

例子:

更改窗口Widget的图标为c盘中的一个笑脸图片,创建一个Icon类型的对象里面是图片的路径,然后调用setWindowIcon。

上面这种是采用绝对路径的方式定位图片资源的。

qrc机制

qrc解决了两个问题:

1.确保开发者的图片资源所在的路径在用户机器上存在。

2.确保图片资源不会被用户弄丢。

给qt项目引入一个qrc文件,该文件是一种XML格式的资源配置文件,该文件记录了qt程序中需要用到的资源及资源名称,在qt编译项目的时候就会根据qrc中所记录的资源,然后把需要用到的资源的二进制数据转换成C++代码,最终编译到exe可执行文件中,从而使依赖的资源变得与路径无关。

注意:路径名和文件名中避免有汉字或特殊符号。向qrc文件中导入资源文件时,必须确保要被导入得资源文件必须在qrc文件得同级目录,或者同级目录中得子目录里。

创建qrc文件

1.在一个已经创建好得qt项目中点击新建文件或项目,然后选择Qt Resource File

2.自定义qrc文件名

 3.添加qt寻找资源时的虚拟前缀(其实是一个虚拟目录)

该前缀可以自己定义,但一般都是一个正斜杠/

4.向qrc文件中导入资源文件

例子:

点击按钮一时窗口图标变为smallface,点击按钮二窗口图标变为listenmusic。

注意:qt项目中访问该项目中的qrc文件中的资源时写法必须按照以下格式:

1、使用 : 作为开头,表示从qrc中读取文件。

2、 : 后根qrc中的添加的前缀(Prefix),然后前缀后面就是要访问的qrc中的资源名。

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

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

相关文章

iOS swift开发系列 -- tabbar问题总结

1.单视图如何改为tabbar,以便显示2个标签页 右上角➕,输入tabbar 找到控件,然后选中,把entrypoint移动到tabbar控件 2.改成tabbar,生成两个item,配置各自视图后,启动发现报错 Thread 1: “-[p…

Muduo网络库解析--网络模块(2)

前文 重写Muduo库实现核心模块的Git仓库 注:本文将重点剖析 Muduo 网络库的核心框架,深入探讨作者精妙的代码设计思路,并针对核心代码部分进行重写,将原本依赖 boost 的实现替换为原生的 C11 语法。需要说明的是,本文…

电脑怎么设置通电自动开机(工控机)

操作系统:win10 第一步,电脑开机时按del键进入bios页面。 第二步,选择advanced下的IT8712 Super IO Configuration 第三步,找到Auto Power On,将其从Power off设置为Power On 第四步,F10保存,大…

如何对小型固定翼无人机进行最优的路径跟随控制?

控制架构 文章继续采用的是 ULTRA-Extra无人机,相关参数如下: 这里用于guidance law的无人机运动学模型为: { x ˙ p V a cos ⁡ γ cos ⁡ χ V w cos ⁡ γ w cos ⁡ χ w y ˙ p V a cos ⁡ γ sin ⁡ χ V w cos ⁡ γ w sin ⁡ χ…

基于Redis实现令牌桶算法

基于Redis实现令牌桶算法 令牌桶算法算法流程图优点缺点 实现其它限流算法 令牌桶算法 令牌桶是一种用于分组交换和电信网络的算法。它可用于检查数据包形式的数据传输是否符合定义的带宽和突发性限制(流量不均匀或变化的衡量标准)。它还可以用作调度算…

学习threejs,局部纹理刷新,实现图片分块加载

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️Texture 贴图 二、&#x1…

超标量处理器设计笔记(10) 寄存器重命名过程的恢复、分发

重命名 寄存器重命名过程的恢复使用 Checkpoint 对 RAT 进行恢复使用 WALK 对 RAT 进行恢复使用 Architecture State 对 RAT 进行恢复总结 分发(Dispatch) 寄存器重命名过程的恢复 当发生异常、分支预测失败时,指令占用 RAT、ROB 和 Issue …

海康萤石摄像机接入EasyNVR流程:开启RTSP-》萤石视频添加到EasyNVR-》未来支持海康SDK协议添加到EasyNVR

EasyNVR目前支持GB28181、RTSP、ONVIF、RTMP(推流)这几种协议接入,目前正在增加海康HIKSDK、大华DHSDK等几种SDK的接入,我们今天就介绍一下萤石摄像机怎么通过RTSP接入到EasyNVR。 第一步:萤石摄像机开启 萤石设备默…

Qt编写的文件传输工具

使用QT编写的文件传输工具 文件传输工具通过发送udp广播消息将IP广播给其他开启该程序的局域网机器 文件传输工具 通过发送udp广播消息将IP广播给其他开启该程序的局域网机器 收到的广播消息可以显示在IP地址列表中,点击IP地址可以自动填充到IP地址栏内 选择文件…

【潜意识Java】深入理解 Java 面向对象编程(OOP)

目录 什么是面向对象编程(OOP)? 1. 封装(Encapsulation) Java 中的封装 2. 继承(Inheritance) Java 中的继承 3. 多态(Polymorphism) Java 中的多态 4. 抽象&…

PWM调节DCDC参数计算原理

1、动态电压频率调整DVFS SOC芯片的核电压、GPU电压、NPU电压、GPU电压等,都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS(Dynamic Voltage and Frequency scaling),优化性能和功耗。 比如某SOC在…

OpenCV相关函数

一、二值化函数(threshold) 功能:将灰度图像转换为二值图像,通常用于图像分割。通过设置阈值,把图像中低于阈值的像素设为0,高于阈值的像素设为1。 参数: src:输入图像。 thresh&a…

bean后处理器的作用

这是beanFactory中常见的一些后处理器: 其中这俩个属于bean后处理器: internalAutowiredAnnotationProcessor解析Autowired、Value internalCommonAnnotationProcessor解析Resource、PostConstruct、PreDestroy Bean后处理器的作用:为Bean…

YOLOv11融合[CVPR2024]Starnet中的star block取模块

YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《Rewrite the Stars》 一、 模块介绍 论文链接:https://arxiv.org/abs/2403.19967 代码链接:https://github.com/ma-xu/Rewri…

日常灵感:听劝是一种天赋

希望这段分享能给你提供一些新的角度,让你在自己的工作和生活中更好地利用这份“听劝”的天赋! 父与子的救赎:听劝的天赋 学霸爸爸李先生是一个典型的"别人家的父母"。 他从小就是学霸,凭借过硬的学习能力从重点高中一…

The Rise and Potential of Large Language ModelBased Agents:A Survey---讨论

讨论 论法学硕士研究与Agent研究的互利性 近年来,随着激光诱导金属化技术的发展,激光诱导金属化与化学剂交叉领域的研究取得了长足的进步,促进了这两个领域的发展。在此,我们期待着LLM研究和Agent研究相互提供的一些益处和发展机…

React 第十六节 useCallback 使用详解注意事项

useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook,返回一个函数的 memoized的值; 2、如果多次传入的依赖项不变,那么多次定义的时候,返回的值是相同的,防止频繁触发更新; 3、多应用在 父组件为函…

Transformer: Attention Is All You Need (2017) 翻译

论文:Attention Is All You Need 下载地址如下: download: Transformer Attention Is All you need Attention Is All You Need 中文 《Attention Is All You Need》是《Transformer》模型的开创性论文,提出了一种全新的基于注意力机制的架构&#xf…

Git-分支(branch)常用命令

分支 我们在做项目开发的时候,无论是软件项目还是其他机械工程项目,我们为了提高效率以及合理的节省时间等等原因,现在都不再是线性进行,而是将一个项目抽离出诸进行线,每一条线在git中我们就叫做分支,bran…

【AIGC进阶-ChatGPT提示词副业解析】反向心理学在沟通中的运用:激将法的艺术

引言 在日常沟通和管理中,直接的表达方式并不总能达到预期效果。反向心理学,特别是其中的激将法,作为一种独特的沟通技巧,往往能在看似消极的表达中激发出积极的反应。本文将深入探讨反向心理学中激将法的运用技巧、实施策略及其…