如何从网络加载PyQt4中的.ico文件

发布于 2021-01-29 15:01:08

我有一个在PyQt4中开发的应用程序。

它具有为Windows和QMenus设置的图标。

所有客户端系统均已安装python。并且PyQt4是从网络位置加载的(\\system_xyz\PyQt4)

该应用程序在带有正确加载图标的开发人员系统中运行良好。但是,当在客户端上运行相同的脚本时,应用程序可以运行,但图标不会加载。

在我的应用程序中,我也使用了Qsql驱动程序。它也有同样的问题。适用于开发人员系统,但不适用于客户端系统。

我可以通过将sql插件路径添加到以下应用程序来克服此sql驱动程序问题

SQLDriverPath = (r'\\system_xyz\PyQt4\plugins\sqldrivers')
QtGui.QApplication.addLibraryPath(SQLDriverPath)

我了解到pyqt4需要qico4.dll读取.ico文件。所以我将imageformats路径添加到了应用程序。但它没有用。

ImageDriverPath = (r'\\system_xyz\PyQt4\plugins\imageformats')
QtGui.QApplication.addLibraryPath(ImageDriverPath)

任何人都可以建议我一种正确的方法来解决我的问题,如何通过网络在PyQt应用中加载.ico

我的更新

我做了以下列出支持的图像格式。

import sys

sys.path.append(r'r'\\system_xyz')

from PyQt4 import QtGui

for imageType in QtGui.QImageReader.supportedImageFormats():
    print imageType

输出值

bmp
pbm
pgm
png
ppm
xbm
xpm

添加后我尝试列出上面的内容imageformats,创建后OP也一样QtGui,QApplication()。结果不变。

关注者
0
被浏览
135
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以在qt.conf文件中设置路径,并将此文件放置在应用程序可执行文件的位置。

    从网络位置访问PyQt4,说\ somesystem \ Share \ PyQt4

    您可以在\\ somesystem \ Share \ PyQt4中找到一个qt.conf文件,然后将其复制并粘贴到应用程序可执行文件的位置。

    在qt.conf中编辑以下几行

    [Paths]
    Prefix = //somesystem/Share/PyQt4
    Binaries = //somesystem/Share/PyQt4
    

    一切正常,即使sqldrivers也将被加载。无需使用app.addLibraryPath您也可以在安装程序中包含此文件,以便将其自动安装。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看