Python 2.6.4 と PyQt4 でメニューを持つシステム トレイを使用してアプリを開発しました。
すべてのクライアント システムには Python がローカルにインストールされており、ネットワーク上の場所から PyQt4 にアクセスしています。
SystemTray とメニュー項目に必要なアイコンを以下のように設定しました。アプリフォルダーには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)
問題はパスではなく、何か他のものであることがわかりました。