首页 > 其他分享 >Qt:6.QWidget属性介绍(windowTitle、windowIcon、windowOpacity)以及QRC机制

Qt:6.QWidget属性介绍(windowTitle、windowIcon、windowOpacity)以及QRC机制

时间:2024-07-01 19:59:56浏览次数:18  
标签:文件 QRC 窗口 Qt windowOpacity windowTitle windowIcon 属性 图标

一、windowTitle属性-窗口标题:

1.1windowTitle属性介绍:

  • 在 Qt 中,windowTitle 属性是 QWidget 类提供的一个属性,用于设置和获取窗口的标题文本。它通常用于设置顶级窗口的标题栏显示内容。

1.2设置窗口标题——setWindowTitle():

widget->setWindowTitle("这是窗口标题");

1.3 获取窗口标题——windowTitle():

QString title = widget->windowTitle();
//创建一个QString对象接收窗口标题

1.4注意事项:

  • windowTitle 属性用于顶级窗口,设置标题后会显示在窗口的标题栏中。可以在程序运行时动态地更改窗口的标题。
  • 对非顶级窗口的普通控件设置setwindowtitle,没有效果但是也不会报错。

二、windowIcon属性-窗口图标:

2.1windowIcon属性介绍:

  • 在 Qt 中,windowIcon 是 QWidget 类提供的一个属性,用于设置和获取窗口的图标。这个图标通常显示在窗口的标题栏左侧、任务栏和窗口管理器中。它可以是一个普通的图片文件,例如 ICO、PNG 等格式。
  • 使用要包含头文件<QIcon>

2.2获取窗口图标——windowIcon() :

QIcon Icon = widget->windowIcon();

 2.3设置窗口图标——setWindowIcon():

QIcon icon(":/images/icon.png");  // 使用资源文件中的图标
widget->setWindowIcon(icon);
  • QIcon对象建立在栈上而不是堆上。
  • QIcon不支持对象树,不能自动释放,他一般创建在某个对象里面。建立在栈上可以随着对应对象的释放而释放。
  • QIcon对象要注意路径的分隔符,要写为/不能是\,因为\在c++有转义的作用。
  • setWindowIcon 方法不支持隐式类型转换。这意味着不能直接传递一个字符串(图标路径)给 setWindowIcon 方法,而是需要创建一个 QIcon 对象并显式地将其传递给setWindowIcon方法。
  • 一般使用相对路径而不是绝对路径,绝对路径太容易出错了。使用相对路径来指定图标文件,那么这个相对路径是相对于可执行程序的当前工作目录。

三、QRC机制:

3.1QRC机制的作用:

  • Qt 的资源系统(QRC 机制)允许你将应用程序的所有资源(例如图像、图标、UI 文件、音频文件等)打包到应用程序的可执行文件中。
  • 这种机制提供了一种便捷的方法来管理和访问这些资源,不再依赖于文件系统的路径,从而避免了相对路径和文件缺失的问题。

3.2如何实现的?

  • 创建一个后缀为 .qrc 的文件,它本质是一个 XML 文件,其中描述和包含了所有需要打包的资源(例如图像、图标、UI 文件、音频文件等)。
  • 在Qt编译项目时,就会根据QRC文件提取到对应资源的二进制数据,并转换为C++代码,编译进可执行程序中。

3.3QRC机制的缺点:

  • 将所有资源文件打包到可执行文件中,会增加可执行文件的大小。对于包含大量或大体积资源(如高分辨率图像、视频、音频)的项目,这个问题尤其明显。
  • 一旦资源文件被嵌入到可执行文件中,如果需要更新某个资源,则必须重新编译整个应用程序。这对于频繁更新资源的项目来说可能不太方便。

3.4实例分析:

  • 创建一个Qt Resource file文件:

        

  • 创建一个前缀:

        

  • 添加资源:

        

  • 需要注意的是,添加的资源,要在qrc文件在同级目录下,或者在同级目录的子目录中。
  • 调用qrc文件中的资源,使用" 冒号 + 前缀 + 资源名"。

 四、windowOpacity属性-窗口透明度:

4.1windowOpacity属性介绍:

  • 在 Qt 中,windowOpacity 属性是 QWidget 类提供的一个属性,用于设置和获取窗口的透明度。
  • 从完全不透明(1.0)到完全透明(0.0)之间的任意值。这对于实现淡入淡出效果或创建半透明窗口非常有用。

4.2获取窗口的透明度——windowOpacity():

qreal opacity = widget->windowOpacity();
  • windowOpacity()的返回值是一个浮点型,可以使用float/double接收,但是更建议使用Qt的封装的qreal类型接收。
  • qreal类型是Qt封装的float/double类型,使用时不需要包含头文件。

4.3设置窗口的透明度——setWindowOpacity():

widget->setWindowOpacity(0.5);

4.4注意事项:

  • 透明度最高为1.0,设置比1.0大的数给窗口,是不会进行设置的,这基于setWindowOpacity内部进行了判定。
  • 设置窗口透明度可能会对性能产生一定影响,特别是在绘制复杂界面或窗口内容时。
  • windowOpacity 属性仅影响整个窗口的透明度,而不影响窗口内部的子控件。如果需要设置子控件的透明度,可以使用 QGraphicsOpacityEffect。

标签:文件,QRC,窗口,Qt,windowOpacity,windowTitle,windowIcon,属性,图标
From: https://blog.csdn.net/weixin_63716012/article/details/140086331

相关文章

  • Simple Qrcode
    介绍升级指南配置简例使用说明助手模板QrCode常规用法在Laravel外的调用方式介绍SimpleQrCode是基于Bacon/BaconQrCode开发,适用于Laravel框架的软件包.我们的目的是让二维码能更加便捷的使用在Laravel框架的项目里.升级指南从v2版本升到v3需要将composer.j......
  • python快速生成二维码及读取二维码内容 pyqrcode MyQR pyzbar
    目录效果图生成二维码方式1:pyqrcode方式2:MyQR  读取二维码效果图生成二维码方式1:pyqrcode安装pipinstallpyqrcode代码实现importpyqrcode#text为保存在二维码的内容。text为完整链接时,扫描后可直接跳转到该链接text='https://www.baidu.com/'qr=pyqrc......
  • 插件:qrcode的使用
    源文档: qrcode文档安装npminstall--saveqrcodeTypeScript用户:如果您使用@types/qrcode,则需要在数据段上方添加//@tsignore,因为它需要data:string。用法用法:qrcode〔options〕<inputstring>二维码选项:-v、--qversion二维码符号版本(1-40)[编号]-e、--error纠错级别......
  • vue项目使用qrcode插件生成二维码
    下载npmiqrcodejs2--save导入importQRCodefrom'qrcodejs2'使用<divclass="qrcode"ref="qrCodeDiv"></div><script>importQRCodefrom'qrcodejs2'exportdefault{data(){return{},......
  • QRCoderHelper-二维码的操作工具类
    /***┌──────────────────────────────────────────────────────────────┐*│描述:二维码QRCoder的操作工具类(QRCoder1.5.1)*│作者:执笔小白*│版本:1.0*│创建时间:2023-06-2216:21:56*......
  • 使用 NestJS 和 qrcode.js 创建 QR 码生成器 API
    前言QR码(QuickResponseCode)是一种二维码,于1994年开发。它能快速存储和识别数据,包含黑白方块图案,常用于扫描获取信息。QR码具有高容错性和快速读取的优点,广泛应用于广告、支付、物流等领域。通过扫描QR码,用户可以快速获取信息和实现便捷操作,为现代生活带来便利。在本教程中,小编......
  • 使用qrcode-generator画二维码存放大量数据
    使用qrcode-generator画二维码存放大量数据大家好我是白码一号~最近在由于项目需要在用vue.js做前端,需要演示一遍设备扫码流程,于是找了网上许多案例但是较多推荐的是qrcode.min.js库引用结尾附完整qrcode.min.js的js文件于是使用当前方式去做跟网上推荐的也大差不差<scri......
  • qrcodejs2 首次生成微信支付二维码不渲染问题
    使用qrcodejs2生成微信支付二维码,后端向前端传递了微信二维码url,通过此方法生成渲染二维码图片  qrcode(url){ //前端根据URL生成微信支付二维码   console.log("调用二维码生成")   //先清除,后增加   document.getElementById("qrcodeIm......
  • vue3使用qrcodejs2-fix生成背景透明的二维码
    qrcodejs官方仓库:GitHub-davidshimjs/qrcodejs:Cross-browserQRCodegeneratorforjavascriptqrcodejs2-fix 是一个用于生成QR码的JavaScript库,使用的时候先安装,然后通过设置前景色和背景色可以控制显示的二维码效果。想生成透明背景的二维码也可以,我通过下面配置前景......
  • 高效的服务端生成QRCODE二维码方案-Docker搭建
    朗读全文Yourbrowserdoesnotsupporttheaudioelement.有什么用展现服务端生成QRCODE二维码方案(Docker搭建)可直接使用我搭建的服务端生成QRCODE服务怎么用使用URL:https://c.carlzeng.top:4443/qrcode?size=150&margin=20&txt=www.carlzeng.top或者使用https://q......