2012-01-13 7 views
0

私はPython(pygtk)を使ってインジケータアプレットを作成していますが、プロセスを探す関数があります。スクリプトを実行している間に変更できるようにするには、メニューにアイテムが必要です。実行中のアイテムの変更

実行中であるかどうかに基づいて、メニュー内の項目がプロセスを強制終了または開始する必要があります。

また、実行中にテキストのみの項目を変更したい場合は、テキストファイルから最新の行を表示するように変更する必要があります。

スクリプトを再起動せずにコード内のアイテムを更新するにはどうすればよいですか?ここ

を参照してくださいコード:事前

答えて

0

私は今働いてしまいました。

gobject.timeout_add(1000, self.funcion, None) 

def function(self, widget) 
    self.label.set_label(uploadM) 
0

https://github.com/danielholm/BareShare/blob/master/bareshare.py

おかげであなたはgtk.MenuItemset_label方法を探しているように私にね。ドキュメントhereを参照してください。

アイテムをクリックできないようにするには、gtk.Widgetのメソッドset_sensitiveを使用してウィジェットを非表示にします。そのhereのドキュメントを参照してください。

gtk.MenuItemに保存したテキストを検索する場合は、get_labelメソッドをgtk.MenuItemにすることもできます。

例は次のようになります。

my_menu_item = gtk.MenuItem("Script is runnning") 
my_menu_item.set_sensitive(False) 

そしてスクリプトの状態が変化した場合、後で、:

my_menu_item.set_text("Script is not running") 
+0

まあ、はい、とりわけ:

あなたはGTKのメインは何度もループし続けるので、()いつでも、そして、あなたが設定した時刻にラベルを更新するために、コードを使用することができますSET_LABELを使用することができます。私はそれをクリック可能にしたくないのですが。 スクリプトを実行中にラベルを変更できるようになりますか? –

+0

最初にset_labelを使い、get_labelをget_activeと同じように使うのですか? –

+0

新しい編集をご覧ください。 – WirthLuce

関連する問題