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

【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。


http://www.mrgr.cn/news/80170.html

相关文章:

  • 3D 生成重建039-Edify 3D:Nvidia的3D生成大模型
  • 专升本-高数 1
  • Photoshop提示错误弹窗dll缺失是什么原因?要怎么解决?
  • 深度学习day4|用pytorch实现猴痘病识别
  • 商业化大前端在性能优化领域的探索与实践
  • Redis篇-2--原理篇1--I/O多路复用机制(5种I/O模型,I/O多路复用)
  • ALOHA 协议详解
  • JAVA学习(三)
  • CTFshow-文件包含(Web78-88,Web116,117)
  • 1.5 多媒体系统简介
  • Flink CDC实时同步mysql数据
  • 使用BMFont创建适用于Unity的艺术字
  • supervisor使用详解
  • [MoeCTF 2021]unserialize
  • Unity学习笔记(二)如何制作角色动画
  • langchain 结构化输出
  • LeetCode hot100-74
  • React 内置的Hook学习
  • Flink CDC 读取oracle库数据性能优化
  • Z240001 基于Java+MySQL+SpringBoot+Vue实现的酒店管理系统的设计与实现
  • Java代审之常见的文件读取方法
  • 方法引用和lambda表达式的奥妙
  • 电感2222
  • #渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍01
  • freeswitch(开启支持MCU视频会议,使用mod_av模块)
  • 设计一个基础JWT的多开发语言分布式电商系统