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

美容医疗手机网站模板张家港网站建设培训

美容医疗手机网站模板,张家港网站建设培训,网站默认主页名,wordpress重置主题文章目录 资源收集文件(.qrc)外部二进制资源内编译(compiled-in)资源压缩使用应用程序中的资源使用库中的资源 Qt资源系统是一种 独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件。如果您的应用程序总是需要一组特定的文件(图标、翻译文件等)&#x…

文章目录

  • 资源收集文件(.qrc)
  • 外部二进制资源
  • 内编译(compiled-in)资源
  • 压缩
  • 使用应用程序中的资源
  • 使用库中的资源

Qt资源系统
Qt资源系统是一种 独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件。如果您的应用程序总是需要一组特定的文件(图标、翻译文件等),并且您不想冒丢失文件的风险,那么这一点非常有用。

资源系统基于qmake、rcc (Qt的资源编译器)和QFile之间的紧密合作。

资源收集文件(.qrc)

与应用程序关联的资源在**.qrc文件中指定,这是一种基于xml的文件格式,它列出磁盘上的文件,并可选择地为它们分配一个资源名称**,应用程序必须使用该名称来访问该资源。

下面是一个.qrc文件例子:

<!DOCTYPE RCC><RCC version="1.0">
<qresource><file>images/copy.png</file><file>images/cut.png</file><file>images/new.png</file><file>images/open.png</file><file>images/paste.png</file><file>images/save.png</file>
</qresource>
</RCC>

.qrc文件中列出的资源文件是应用程序源代码树的一部分。指定的路径是相对于包含.qrc文件的目录的。注意,列出的资源文件必须位于与.qrc文件相同的目录中,或者位于它的一个子目录中。

可以将资源数据编译成二进制数据,从而立即在应用程序代码中访问,或者可以创建二进制资源,稍后在注册到资源系统的应用程序代码中创建二进制资源

默认情况下,应用程序中的资源可以使用与源树中相同的文件名访问,使用:/prefix,或者使用带有qrc方案的URL。
例如,文件路径:/images/cut.png 或URL qrc:///images/cut.png 可以访问程序资源树中位于image/cut.png的文件cut.png这可以使用 file 标签的 alias 属性进行更改:

<file alias="cut-img.png">images/cut.png</file>

文件就可以从应用中通过:/cut-img.png进行访问了。使用qresource 标签的 prefix 属性还可以为 qrc 文件内的所有文件指定路径前缀:

<qresource prefix="/myresources"><file alias="cut-img.png">images/cut.png</file>
</qresource>

在这种情况下,可以通过:/myresources/cut-img.png访问该文件

有些资源需要根据用户的区域设置进行更改,例如翻译文件或图标。这是通过向 qresource 标签添加一个 lang属性,并指定一个合适的区域设置字符串来完成的。例如:

<qresource><file>cut.jpg</file>
</qresource>
<qresource lang="fr"><file alias="cut.jpg">cut_fr.jpg</file>
</qresource>

外部二进制资源

要创建外部二进制资源,必须通过将-binary开关传递给rcc来创建资源数据(通常提供.rcc扩展名)。创建二进制资源后,您可以向QResource API注册该资源。

例如,在.qrc文件中指定的一组资源数据可以用以下方式编译:

rcc -binary myresource.qrc -o myresource.rcc

在应用程序中,此资源将使用以下代码进行注册:

QResource::registerResource("/path/to/myresource.rcc");

内编译(compiled-in)资源

要将资源编译成二进制文件,必须在应用程序的.pro文件中提到.qrc文件,以便qmake知道它。例如

RESOURCES     = application.qrc

qmake将生成make规则来生成一个名为qrc_application.cpp的文件,该文件链接到应用程序中。这个文件包含图像和其他资源的所有数据,作为压缩二进制数据的静态c++数组。每当.qrc文件或它所引用的文件之一发生变化时,都会自动重新生成qrc_application.cpp文件。如果不使用.pro文件,则可以手动调用rcc或向构建系统添加构建规则。
内编译资源
目前(Qt5.12),Qt总是将数据直接存储在可执行文件中,即使在Windows、macOS和iOS上也是如此,这些操作系统提供了对资源的本地支持。这可能会在未来的Qt版本中改变。

压缩

资源默认被压缩(zip格式)。压缩是可关闭的。如果资源已经包含压缩格式,例如.png文件,那么这可能很有用。可以通过提供-no-compress命令行参数来实现这一点。

rcc -no-compress myresources.qrc

RCC还为您提供了对压缩的一些控制。您可以指定压缩文件时要考虑的压缩级别和阈值级别,例如:

rcc -compress 2 -threshold 3 myresources.qrc

使用应用程序中的资源

在应用程序中,大多数地方都可以使用资源路径,而不是普通的文件系统路径。特别是,你可以传递一个资源路径而不是文件名给QIcon, QImage,或QPixmap构造函数:

  cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this);

在内存中,资源由资源对象树表示。该树在启动时自动构建,并由QFile用于解析到资源的路径。您可以使用用:/初始化的QDir从根目录开始在资源树中导航

Qt的资源支持搜索路径列表的概念。如果使用:而不是:/作为前缀引用资源,则将使用搜索路径列表查找该资源。搜索路径列表在启动时为空;调用QDir::addSearchPath()为其添加路径。

使用库中的资源

如果库中有资源,则需要使用.qrc文件的基本名称调用Q_INIT_RESOURCE()来强制初始化资源。例如:

MyClass::MyClass() : BaseClass()
{Q_INIT_RESOURCE(resources);QFile file(":/myfile.dat");...
}

这确保了在静态链接的情况下,资源被链接到最终的应用程序二进制文件中。您应该将初始化代码放在库中使用资源的位置附近,以便库的客户端只有在使用依赖于这些资源的库的特性时才会链接这些资源。

注意:由于rcc生成的资源初始化器是在全局命名空间中声明的,所以对Q_INIT_RESOURCE()的调用也需要在任何命名空间之外进行。

如果库包含的资源不在内部使用,而是公开给库的客户端,则需要在应用程序代码中进行初始化。例如:

int main(int argc, char *argv[])
{QApplication app(argc, argv);Q_INIT_RESOURCE(graphlib);QFile file(":/graph.png");...return app.exec();
}

与前面一样,在静态链接的情况下,这确保了资源被链接到最终的应用程序二进制文件中,但在动态链接(如插件)的情况下,也会触发库的加载。

如果您必须显式地卸载一组资源(因为正在卸载一个插件或资源不再有效) ,您可以通过使用与上面相同的基名称调用 Q _ CLEANUP _ RESOURCE ()来强制删除您的资源。

注意:当资源作为应用程序的一部分构建时,不需要使用Q_INIT_RESOURCE()和Q_CLEANUP_RESOURCE()。

http://www.yayakq.cn/news/129777/

相关文章:

  • 网站后台新闻不显示如何刷新房产网站建设的功能
  • 响应式网站预览莱芜信誉好的网络推广公司
  • 营口建设工程质量监督站网站wordpress 评论 重复
  • 中国建筑建设通的网站dedecms 音乐网站模板
  • 网站信息可以宁波网站建设最好
  • 山东省专业群建设网站网站未来发展规划
  • wordpress 多站点设置网站设计的安全尺寸
  • iis 网站访问权限婚恋网站 模板
  • xml网站模板重庆景点排名
  • 做网站编辑需要经验吗个人备案的域名拿来做经营网站
  • 福州市住房和城乡建设网站wordpress手机端模板下载失败
  • 电子商务平台是什么宁波seo网站排名
  • 有什么做视频的素材网站各大网站查重率比较
  • 做网站的工作轻松吗网站前台的网址
  • 做三合一网站的好处什么网站做一手房好
  • 攸县网站定制建网站手机版
  • 装修设计师网站江西省建设厅官方网站
  • 2018年做返利网站上海都有哪些公司
  • 域通联达网站网站备案查询 美橙网
  • 网站建设服务费计入什么科目软件开发自学步骤视频
  • 大庆做网站的广西建设网行业版首页
  • 网站开发页面静态化技术统计网站访客人数
  • 大型网站的mssql数据库要付费吗服务号微网站怎么做
  • 网站在百度无法验证码怎么办企业电话黄页
  • 河南省建设厅网站无事故证明十堰外贸网站建设
  • 经纪人做网站技巧什么叫前端什么叫后端
  • 中国有没有一家做茶叶的网站哈尔滨网站建设科技公司
  • 手机搭建网站教程视频flash网站建设教程
  • 毛概课程网站建设建站之星备案
  • 视觉网站建设汕头建设工程信息网