他のプラットフォームでシステムトレイアプリケーションをどのように実現しますか?
-
03-07-2019 - |
質問
Windowsには「システムトレイ」があります。時計と、MSN、Steamなどの常時実行サービスを収容します。
wxPythonトレイアプリケーションを開発したいのですが、これが他のプラットフォームにどれだけうまく移植できるのか疑問に思っています。各プラットフォームで同等のトレイと、Windows、OSX、Linuxをサポートするために必要な手動作業の量(特にシェルは最も使いやすいでしょう)。
解決
wxは、Win32、Mac OS X、GTK +、X11、Motif、WinCEなどをサポートするクロスプラットフォームのGUIおよびツールライブラリです。クラスを使用する場合、アプリケーションはこれらすべてのプラットフォームで動作するはずです。 システムトレイについては、wxTaskBarIcon( http://docs.wxwidgets.org/stable/wx_wxtaskbaricon。 html#wxtaskbaricon )。
他のヒント
OS Xにはステータスメニューバーがあります-右端の項目は多くの場合、ステータスに関連するものです(バッテリーステータス、WiFi接続など)。
NSStatusBar および NSMenuExtra 。アプリケーションをNSStatusBarメニューを持ち、Dockに表示されないものに変えるのはほとんど簡単です。 チュートリアル その方法について
多くのLinuxデスクトップシステム(Gnome、KDEなど)では、Freedesktopの SysTrayプロトコルが実装されています。他のソリューションが失敗した場合、それを試すことができます。
Linuxでは、実際に依存します-そこには異なるプログラミング環境があり、一部のウィンドウマネージャーにはトレイ領域さえありません。また、Gtkを使用する場合(wxが実際にGtkである場合)、 gtk.StatusIcon はあなたの友達です。
ここはその例です(チェックされていません)実際に機能するが、パスが表示される場合)。
wx
の場合、こちらのサンプルコードを見つけました。
Qtを使用: Qt Systrayの例
Qtが実行され、そのようなアイコンをサポートするすべてのプラットフォームでシステムトレイアイコンが表示されます。ただし、システムトレイ機能がサポートされていない場合は、戦略を立てる必要があります。