Отображение текста в реальном времени в Tkinter после вызова функции кнопки Button? - PullRequest
0 голосов
/ 25 августа 2011

Я пытаюсь отобразить текст в режиме реального времени в Tkinter после того, как команда Button вызывает функцию. Функция должна отображать «метку времени», когда PycURL получает «HTTP / 1.1 200 OK». Функция передает данные об энергии на сервер каждые 2 минуты.

Псевдокод, базовый пример и / или общая дискуссия должны направить меня в правильном направлении. У меня есть данные по энергии. Теперь мне нужно, чтобы графический интерфейс работал.

Спасибо - Брэд

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Нашел ответ в книге Марка Лутца «Программирование на Python».Следующий код адаптирован из книги с использованием информации из потоков и очередей!

    import thread, Queue, time, random, poster
    from Tkinter import *

    dataQueue = Queue.Queue()

    def status(t):
        try:
            data = dataQueue.get(block=False)
        except Queue.Empty:
            pass
        else:
            t.delete('0', END)
            t.insert('0', '%s\n' % str(data))
        t.after(250, lambda: status(t))

    def makethread():
        thread.start_new_thread(poster.poster, (1,dataQueue))    

    if __name__ == '__main__':
        root = Tk()
        root.geometry("240x45")
        t = Entry(root)
        t.pack(side=TOP, fill=X)
        Button(root, text='Start Epoch Display',
                command=makethread).pack(side=BOTTOM, fill=X)
        status(t)
        root.mainloop()

В другом файле с именем poster

    import random, time

    def poster(id,que):
        while True:
            delay=random.uniform(0.1, .11)
            time.sleep(delay)
            que.put(' epoch=%f, delay=%f' % (time.time(), delay))

Это сработало.

0 голосов
/ 25 августа 2011

Как вы пытаетесь отображать текст в реальном времени в Tkinter после того, как кнопка вызывает функцию?Что я получаю, так это то, что пользователь нажимает кнопку, запускается функция, и каждые две минуты отправляет некоторые данные на сервер и пытается отобразить текст где-то после каждого сообщения, но у него есть проблема?

Как он пытаетсяотобразить текст, и в чем проблема?

(я не знаю PycURL, поэтому извиняюсь, если это все прояснит)

...