PYQT资源,冻结程序

Posted

技术标签:

【中文标题】PYQT资源,冻结程序【英文标题】:PYQT resources, frozen programs 【发布时间】:2013-05-29 22:57:54 【问题描述】:

Windows 上 PyQT/resources/cx_freeze 的问题/疑问:

我正在使用 QT 的资源系统来设置应用程序图标。 (位于 Windows 程序窗口的左上角)我在 Designer 中创建了资源,然后使用 pyrcc4 创建了一个 rc.py 文件。它在我的未编译程序上正常工作,但在使用 cx_freeze 编译脚本时无法显示(改为显示通用 Windows 程序图标)。请注意,我指的不是您单击以启动程序的图标——它不是由 QT 处理的,并且可以正常工作。有任何想法吗?这是我的 setup.py。

from sys import platform
from cx_Freeze import setup, Executable

import module_locator

_dir = module_locator.module_path()

base = None
if platform == "win32":
    base = "Win32GUI"

setup(
    name = "Plates",
    version = "0.1",
    description = "Downloads approach plates",
    executables = [Executable(_dir + '\\plates.pyw',
    base = base, icon = _dir + '\\icon.ico')],
    )

我在构建程序时没有遇到任何错误。 library.zip 中确实存在我的 rc 文件(作为已编译的 python 文件)。

【问题讨论】:

Qt 需要插件来显示一些图像格式。查找名为“imageformats”的文件夹并将其复制到您的应用程序目录(exe 旁边)。 如果您作为答案发布,我会将其标记为解决方案。谢谢你。图像文件夹位于 (Windows) Python33\Lib\site-packages\PyQt4\plugins 中。按照您的描述将其复制到我的应用程序目录中。 【参考方案1】:

作为答案转发:

Qt 需要插件来显示一些图像格式。查找名为“imageformats”的文件夹并将其复制到您的应用程序目录(exe 旁边)。

下一个版本的 cx_Freeze 应该会在您使用 QtGui 时自动查找和复制图像格式。

【讨论】:

以上是关于PYQT资源,冻结程序的主要内容,如果未能解决你的问题,请参考以下文章

在 PyQt5 中通过命令行调用外部程序时,有没有办法阻止 GUI 冻结?

Pyqt Gui 在循环中冻结

PyQt 4 UI 冻结

pyinstaller - 冻结应用程序时 QtWebEngineWidgets 抛出 dll 错误

如何修复 PyQt5 GUI 冻结

等效于 PyQt 应用程序的 time.sleep