PyQt4 を使用してバックグラウンドで実行されるプログラムを作成しました。システム トレイ アイコンは別のスレッドで作成され、メイン プログラムを作成してトレイに配置した後、メイン プログラムと対話できます。Ubuntu 10.04でこれまで問題が発生したことはありません。ただし、最近Ubuntu 12.04にアップグレードしましたが、何らかの理由で、必要なQSystemTrayIconの痕跡さえありません。ここで何が起こっているのか、誰かが私に手がかりを与えることができますか? AskUbuntu と SO に関する私の質問に関する投稿を探しましたが、データベース内に私の問題に一致するものが見つからないようです。関連すると思われるコードの一部のみを含めましたが、必要に応じてさらに情報を提供します。
編集: Ubuntu でトレイ パネルのホワイト リストを既に変更し、に設定している['all']
ので、問題ではないと特定できました。
関連するコード:
class notify(threading.Thread, QtGui.QSystemTrayIcon):
def __init__(self, process, iconMain, iconNew, parent=None):
threading.Thread.__init__(self)
QtGui.QSystemTrayIcon.__init__(self, iconMain, parent)
self.menu = QtGui.QMenu(parent)
self.menuNew = QtGui.QMenu(parent)
viewAdsAction = self.menu.addAction("View Ads")
textModeAction = self.menu.addAction("Text-Mode")
exitAction = self.menu.addAction("Exit")
textModeActionNew = self.menuNew.addAction("PC-Mode")
exitActionNew = self.menuNew.addAction("Exit")
self.iconMain = iconMain
self.iconNew = iconNew
self.setContextMenu(self.menu)
self.process = process
self.textMode = False
main() での実行:
def main():
os.chdir(os.getenv("HOME") + "/.Phones")
beginMain = mainProgram()
beginMain.start()
app = QtGui.QApplication(sys.argv)
w = QtGui.QWidget()
notifications = notify(beginMain, QtGui.QIcon("icon-58x58.xpm"), QtGui.QIcon("notify.xpm"), w)
notifications.show()
notifications.start()
sys.exit(app.exec_())