【问题标题】:Qt Icon embedded in Executeable嵌入在可执行文件中的 Qt 图标
【发布时间】:2009-11-05 15:11:50
【问题描述】:

我在 tabwidget 上有一些按钮。这些按钮上面需要有一些图标。

我知道 QPixmap 允许我将图像放在按钮顶部,但我看到这些构造函数将文件路径作为参数。我想避免在构建后在文件中拖动图标。我想以某种方式将这些图标嵌入到可执行文件中,以减少我需要随身携带以使其工作的包袱。

我怎样才能做到这一点?

我很想听听一些方法来实现我的目标,即不需要在可执行文件中拖动图标文件;如果您对我可能使用的一些术语感到困惑,请关注这方面,因为我仍在学习 Qt。

【问题讨论】:

    标签: qt icons


    【解决方案1】:

    当然,您可以将图标、图像和所有其他自定义资源嵌入到您的应用程序中。 请阅读 The Qt 4's Resource System(或 click here 用于 Qt 5)

    【讨论】:

      【解决方案2】:

      您将拥有一个名为 ProjectName.qrc 的资源文件,其中列出了图标(通常是 PNG)。使用 Qt Creator,它已经开始为您提供一个空白的 QRC 文件。指定“文件”时,您以“:/Images/MyCrazyIco​​n.png”的方式使用语法,并且从嵌入到可执行文件中的资源加载图标。请注意,Qt 并没有以最完美的方式管理资源,即按需加载它们,但并不总是占用系统内存;它们总是占用系统内存,如果它们很小,这真的没什么大不了的。对于稍后要刷新的大图形,只需指定一个真实的文件名(例如,“MyBigFile.png”而不是“:/MyBigFile.png”,后者指向可执行文件中的资源)。

      使用资源语法的权力在于冒号字符“:”,因此您甚至可以拥有“:MyFile.png”,前提是 QRC 文件与资源位于同一目录中。我就是这样做的,到目前为止,还没有看到这种语法的缺点。我讨厌在语法中包含“.../Images/...”,因此我的资源名称使用“:MyPic.png”来寻址,而没有更长的“:/Images/MyPic.png”,并且一切正常。

      Qt 文档指出,目前它们不支持 Windows 和 Mac 支持的真正资源处理,但未来可能会发生变化。请记住,“真正的资源支持”是指您可以在可执行文件中放置数兆字节的图形和声音而无需担心它们会加载到内存中,直到您请求它们的神奇时刻。 QRC 资源在加载可执行文件时加载到内存中。可加载文件支持的蒙皮弥补了这一弱点。 Qt 正在迅速改进,有朝一日它们可以很好地支持 Windows 和 Mac 资源系统。我越来越多余了,必须去。塔塔。大家给我加分,我需要积分。

      【讨论】:

        【解决方案3】:

        也许你应该试试这个:

        在您的 .pro 项目文件中添加一行:

        RC_ICONS = myappico.ico

        更多信息:Setting the Application Icon

        【讨论】:

          猜你喜欢
          • 2011-01-08
          • 1970-01-01
          • 2011-03-29
          • 2014-03-11
          • 1970-01-01
          • 2013-08-27
          • 1970-01-01
          • 2011-01-16
          • 2014-11-17
          相关资源
          最近更新 更多