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

ops/2024/12/15 15:22:17/

目录

一、 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.ppmy.cn/ops/142140.html

相关文章

HarmonyOS-高级(五)

文章目录 HiTraceMeterHiTraceChain错误管理故障分析 🏡作者主页:点击! 🤖HarmonyOS专栏:点击! ⏰️创作时间:2024年12月11日12点12分 HiTraceMeter HiTraceMeter提供系统性能打点接口。开发者…

分类算法评估标准综述

目录 ​编辑 混淆矩阵(Confusion Matrix) 准确率(Accuracy) 精确率(Precision) 召回率(Recall) F1分数(F1 Score) ROC曲线和AUC值 P-R曲线 马修斯相…

【Linux课程学习】:第20弹---信号入门专题(基础部分)

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 ​ Linux学习笔记: https://blog.csdn.n…

外卖开发(九)——Excel数据报表ApachePOI

外卖开发(九)——Excel数据报表 一、ApachePOI二、入门案例三、导出运营数据报表1、ReportController2、ReportService 一、ApachePOI Apache POl是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程…

LINUX——shell编程

Shell 简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。 下面是流程示意图&#xff…

【4】数据分析基础(pandas中的series 1)

学习目标2 pandas模块的学习。 pandas是一个基于NumPy的模块,它的功能在于数据的筛选清洗和处理,与NumPy模块相比,pandas模块更擅长处理二维数据。 pandas模块主要有Series和DataFrame两种数据结构。 接下来,我们先学习Series…

Kubernetes 的 Web UI 仪表板部署以及使用

前言 Kubernetes 仪表盘为集群提供了基于网页的用户界面。人们可以使用该仪表盘在集群上部署应用程序,也可以对集群中已有的应用程序进行故障排查。此外,该仪表盘还能让人深入了解集群中的资源情况。它由 Kubernetes 官方提供,人们能够通过它…

使用DuckDB 加载和清洗数据

DuckDB CLI是允许用户直接从命令行与DuckDB交互的工具。前文你看到了如何使用Python与DuckDB交互。但是,有时你只是想直接使用数据库—例如在创建新表、从不同数据源导入数据以及执行与数据库相关的任务时。在这种情况下,直接使用DuckDB CLI要有效得多。…