Смена предметов во время бега - PullRequest
0 голосов
/ 13 января 2012

Я создаю апплет индикатора, используя Python (pygtk), и у меня есть функция, которая ищет процесс.Мне нужно, чтобы элемент в меню мог измениться, пока выполняется скрипт.

Элемент в меню должен убить или запустить процесс, в зависимости от того, запущен он или нет.

Кроме того, я хочу, чтобы текстовый элемент изменялся во время работы, но этот элемент должен постоянно изменяться, чтобы отображать последнюю строку из текстового файла.

Как обновить элементы в коде без перезапуска сценария?

См. Код здесь: https://github.com/danielholm/BareShare/blob/master/bareshare.py

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 26 января 2012

У меня это работает сейчас.

Вы можете использовать set_label () в любое время, и, так как GTK main повторяет цикл снова и снова, вы можете использовать код для обновления метки в установленное время:

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

def function(self, widget)
  self.label.set_label(uploadM)
0 голосов
/ 13 января 2012

Похоже, вы ищете set_label метод gtk.MenuItem.См. Документацию здесь .

Чтобы сделать элемент недоступным для щелчка мышью, вы хотите использовать set_sensitive метод gtk.Widget, чтобы сделать виджет нечувствительным.См. Документацию для этого здесь .

Вы также можете использовать get_label метод gtk.MenuItem, чтобы получить любой текст, который вы сохранили в 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")
...