2013-04-29 7 views
5

私はPythonでアプリケーションを開発しています。これはWindows MacOSXおよびLinuxで使用されるようになり、システム(ステータスアイコン)アイコン(およびクリックするとメニューが表示されます)。 Windows、Mac、LinuxでPyGTKを使用できますか?ステータスバー(macosx)、システムトレイ(Windows)、またはLinuxにステータスコードを表示するのに同じコードを使用できますか?MacOSX、Windows、Linux(Gnome)およびPythonのGTK +のステータスアイコン

ありがとうございます。 これはコードである:

import gtk 


class SystrayIconApp: 
    def __init__(self): 
     self.tray = gtk.StatusIcon() 
     self.tray.set_from_stock(gtk.STOCK_ABOUT) 
     self.tray.connect('popup-menu', self.on_right_click) 
     self.tray.set_tooltip(('Sample tray app')) 


     def on_right_click(self, icon, event_button, event_time): 
      self.make_menu(event_button, event_time) 

     def make_menu(self, event_button, event_time): 
      menu = gtk.Menu() 

      # show about dialog 
      about = gtk.MenuItem("About") 
      about.show() 
      menu.append(about) 
      about.connect('activate', self.show_about_dialog) 

      # add quit item 
      quit = gtk.MenuItem("Quit") 
      quit.show() 
      menu.append(quit) 
      quit.connect('activate', gtk.main_quit) 

      menu.popup(None, None, gtk.status_icon_position_menu, 
        event_button, event_time, self.tray) 

    def show_about_dialog(self, widget): 
     about_dialog = gtk.AboutDialog() 
     about_dialog.set_destroy_with_parent (True) 
     about_dialog.set_icon_name ("SystrayIcon") 
     about_dialog.set_name('SystrayIcon') 
     about_dialog.set_version('0.1') 
     about_dialog.set_copyright("(C) 2010 João Pinto") 
     about_dialog.set_comments(("Program to demonstrate a system tray icon")) 
     about_dialog.set_authors(['João Pinto <[email protected]>']) 
     about_dialog.run() 
     about_dialog.destroy() 

if __name__ == "__main__": 
    SystrayIconApp() 
    gtk.main() 

これは、MAC OS X(GTK +からスター)でデトレイである:

This is system tray in MAC OS X

これは、Windowsのトレイ(GTK +からスター)です。 Windows上で

This is the tray in WINDOWS

アイコンをクリックすると、何の問題、メニューは表示されませんが、MacのOXでは、ICOSがsでありますメニューは表示されません。

コードの問題点は何ですか?

+0

「ステータスバーアイコン」とはどういう意味ですか? Windowsのシステムトレイに表示されるアイコン?この動作はWindowsのみに存在するため、Gnomeのシステムトレイにはもうアイコンがありません(3.4+)。アプリのアイコンについて話しているのかもしれませんか? – halflings

+0

上の画像のスターアイコン – ManuParra

+0

ちょっと、解決策は見つかりましたか? Python Gtk(またはPyGObject/Gtk + 3)を使用してOSX上にインジケータアイコンを追加する場合。 –

答えて

-3

短い回答:はい!

Qtは、互換性のあるすべてのオペレーティングシステムでステータスアイコンの統合を管理します。

これを行うには、QSystemTrayIconクラスを使用するだけです。

QSystemTrayIconクラスは、システムトレイにあるアプリケーションのアイコンを提供します。 最近のオペレーティングシステムでは、通常、システムトレイまたは通知領域と呼ばれる特別な領域がデスクトップに用意されています。長時間実行されるアプリケーションでは、アイコンやショートメッセージを表示できます。

さらに詳しい情報はQt Documentationです。

+0

しかし、私は商用アプリケーションをしたい、QTは無料ではない、それは本当ですか?私のアプリケーションに使用できるGPL Qtライブラリがありますが、この制限はありませんか? – ManuParra

+0

QtはLGPLです。だからあなたは商用アプリケーションのためにそれを自由に使うことができます。このSOの質問に関するさらに詳しい情報:http://stackoverflow.com/questions/352896/qt-commercial-licenses – halflings

+0

いいえ、しかしPyQtではなくpydide – ManuParra

-6

右クリック属性のインデントエラーがあり、そしてまた、あなたは含める必要があります!

は/ usr/binに/ pythonの

から- コーディング:UTF-8から -

をスクリプトの冒頭に追加します。

+2

私はそれが問題とは関係ないと思う – carpinchosaurio

関連する問題