【问题标题】:icons in PyQt not showing properlyPyQt 中的图标未正确显示
【发布时间】:2013-01-25 07:16:16
【问题描述】:

我在 Python 2.6.4 和 PyQt4 中开发了一个带有系统托盘的应用程序。

每个客户端系统都在本地安装了 python,并从网络位置访问 PyQt4。

我为菜单项设置了 SystemTray 和所需的图标,如下所示。 App 文件夹有我正在使用的 icons 文件夹。所以我用os.getcwd()

我将此应用程序文件夹保存在网络中,以便每个人都可以访问。

self.mnuItem_1 = QtGui.QAction(QtGui.QIcon(r'%s\icons\icon1.ico' % (os.getcwd())), "Menu Item 1", self)
self.mnuItem_2 = QtGui.QAction(QtGui.QIcon(r'%s\icons\icon1.ico' % (os.getcwd())), "Menu Item 1", self)

self.trayIconMenu = QtGui.QMenu(self)
self.trayIconMenu.addAction(self.mnuItem_1)
self.trayIconMenu.addAction(self.mnuItem_2)
self.trayIcon = QtGui.QSystemTrayIcon(self)
self.trayIcon.setContextMenu(self.trayIconMenu)
TrayIcon = (r'%s\ShowTime_Addons\Media\showtimeIcon.ico' % (os.getcwd()))
self.trayIcon.setIcon(QtGui.QIcon(TrayIcon))
self.trayIcon.setToolTip('Showtime')
self.trayIcon.show()

在某些系统中我可以看到图标,但在某些系统中没有显示图标。

为了测试,我放置了 .png 并使用它,它工作正常。

self.mnuItem_1 = QtGui.QAction(QtGui.QIcon(r'%s\icons\icon1.png' % (os.getcwd())), "Menu Item 1", self)
self.mnuItem_2 = QtGui.QAction(QtGui.QIcon(r'%s\icons\icon1.png' % (os.getcwd())), "Menu Item 1", self)

因此了解到问题不在于路径,而在于其他问题。

【问题讨论】:

    标签: python icons pyqt4 system-tray


    【解决方案1】:

    不确定这是解决方案,但尽量不要使用os.getcwd(),它会为您提供当前工作目录,它可能与您的应用程序目录不同。要确定应用程序目录,请使用:

    base_dir = os.path.dirname(os.path.abspath(__file__))
    

    然后使用base_dir 代替os.getcwd() 或者这样做:

    os.chdir(base_dir)
    

    【讨论】:

      【解决方案2】:

      我找到了这个场景的解决方案

      一种方法是在qt.config 文件中设置路径并将其放在可执行文件的位置。(在我的例子中是 C:\Python26)

      正如我在我的问题中所描述的,我正在从网络位置访问 PyQt4,比如 \\somesystem\Share\PyQt4

      我们会在\\somesystem\Share\PyQt4 中找到一个qt.config 文件 把它放在qt.conf下面的行中

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

      一切正常,甚至会加载 sqldrivers。无需使用app.addLibraryPath

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-02
        相关资源
        最近更新 更多