2013-01-25 6 views
1

Python 2.6.4 및 PyQt4에 메뉴가있는 시스템 트레이가있는 앱을 개발했습니다.PyQt의 아이콘이 제대로 표시되지 않습니다.

모든 클라이언트 시스템에는 Python이 로컬로 설치되어 있으며 네트워크 위치에서 PyQt4에 액세스합니다.

다음과 같이 시스템 트레이 및 필수 아이콘을 메뉴 항목으로 설정합니다. 앱 폴더는 내가 사용하는 곳의 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) 

그래서 문제는 경로가 아니라 다른 것으로 이해하게되었습니다.

답변

0

qt.config 파일을 찾아 실행 파일의 위치에 넣으십시오 (내 경우 C : \ Python26)

디스크로 내가 네트워크 위치에서 PyQt4에 접근하고 내 질문에 ribed는 것 잘, 심지어 sqldrivers 작동 \\somesystem\Share\PyQt4

우리는 \\somesystem\Share\PyQt4 을 가지고있는 qt.config 파일을 찾아 qt.conf

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

모두에서 선 아래에이를 넣어 것이라고 적재되다. 사용할 필요 없음 app.addLibraryPath

0

확실하지는 않지만 현재 작업 디렉토리를 제공하는 os.getcwd()을 사용하지 마십시오. 응용 프로그램 디렉토리와 다를 수 있습니다. 응용 프로그램 디렉토리를 확인하려면 사용

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

그리고 대신 os.getcwd()base_dir를 사용하거나 할 : 나는

한 가지 방법이있는 경로를 설정하는 것입니다이 시나리오에 대한 해결책을 발견

os.chdir(base_dir) 
관련 문제