2012-01-13 123 views
0

我正在使用Python(pygtk)创建一个指示器小程序,我有一个查找过程的函数。我需要菜单中的项目才能在运行脚本时进行更改。运行时更改项目

菜单中的项目应该根据它是否正在运行来杀死或启动一个进程。

此外,我希望在运行时更改纯文本项目,但这个应该不断更改以显示文本文件中的最新行。

如何在不重新启动脚本的情况下更新代码中的项目?

在这里看到代码:https://github.com/danielholm/BareShare/blob/master/bareshare.py

在此先感谢

回答

0

我现在的工作。

您可以使用set_label()在任何时间,并且因为GTK主不断循环一遍又一遍,你可以使用一个代码,在设定的时间来更新标签:

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

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

听起来好像你正在寻找的gtk.MenuItemset_label方法。请参阅文档here

为了使物品不可点击,您希望使用set_sensitive方法gtk.Widget来使小部件不敏感。请参阅here的文档。

您还可以使用gtk.MenuItemget_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

嗯,是的,等等。虽然我不希望它是可点击的。 所以标签在运行脚本时能够改变吗? – 2012-01-13 16:48:40

+0

你的意思是先使用set_label然后get_label就像get_active一样? – 2012-01-13 19:20:36

+0

看到我的新编辑。 – WirthLuce 2012-01-13 19:34:17