Обновление метки в Python - PullRequest
0 голосов
/ 27 июня 2010

Я создаю апплет в панели gnome.Весь код хорош.Но информация на панели статична.Но нужно обновить эту информацию вовремя.1 секунда или 5 секунд ...

Вот часть кода Python:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import gobject
import gtk
import pygtk
import gnomeapplet
import time
import urllib2
pygtk.require('2.0')

def applet_factory(applet, iid):   
   label = gtk.Label("Simple text")
   applet.add(label)
   applet.show_all()

print('Factory started')

if __name__ == '__main__':   # testing for execution
   print('Starting factory')
   gnomeapplet.bonobo_factory('OAFIID:SampleApplet_Factory', 
                              gnomeapplet.Applet.__gtype__, 
                              'Sample Applet', '0.1', 
                              applet_factory)

Мне нужно обновить метку "простой текст" во временном интервалеКак это?

Ответы [ 2 ]

0 голосов
/ 27 июня 2010

Как насчет ...:

def applet_factory(applet, iid):   
   label = gtk.Label("Simple text")
   applet.add(label)
   applet.show_all()
   return label

thelabel = applet_factory(applet, iid)

def redrawlabel(*args):
    thelabel.queue_draw()
    # process all events
    while gtk.events_pending():
        gtk.main_iteration(False)
    return True

# call redrawlabel every 5 minutes
gtk.timeout_add(5*60*1000, redrawlabel)

Если вам также нужно установить для текста другое значение, thelabel.set_text('something else') сделает это.

0 голосов
/ 27 июня 2010

Большинство библиотек GUI (wxPython, GTK, Qt, ...) позволяют вам определять таймеры, чтобы ваша функция, которая устанавливает текст метки, вызывалась каждые 5 секунд. См принятый ответ в этом вопросе SO: Запуск функции каждые X минут - Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...