运行时更改项目

时间:2012-01-13 15:15:31

标签: python dynamic gtk pygtk

我正在使用Python(pygtk)创建一个指标applet,我有一个查找进程的函数。我需要菜单中的项目能够在仍然运行脚本时进行更改。

菜单中的项目应根据其是否正在运行来终止或启动进程。

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

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

请参阅此处的代码:https://github.com/danielholm/BareShare/blob/master/bareshare.py

提前致谢

2 个答案:

答案 0 :(得分:0)

听起来像我一样,正在寻找set_label gtk.MenuItem方法。请参阅文档here

为了使该项无法点击,您希望使用set_sensitive gtk.Widget方法使窗口小部件不敏感。请参阅here的文档。

您还可以使用get_label的{​​{1}}方法检索您在gtk.MenuItem中存储的任何文字。

一个例子是:

gtk.MenuItem

然后,当脚本状态发生变化时:

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

答案 1 :(得分:0)

我现在就开始工作了。

您可以随时使用set_label(),并且由于GTK main一遍又一遍地循环,您可以使用代码在设定的时间更新标签:

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

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