代码运行时如何在tkinter GUI中插入文本

时间:2019-04-03 11:44:40

标签: python-3.x tkinter

嗨,我尝试使用tkinter包创建一个Python GUI。一切运行正常,但是我想在代码运行时插入或打印一些文本。我的代码长度不大,我没有包含所有代码,要执行我需要在Text区域上添加一些更新信息,以便用户知道编码正在运行并从Internet获得一些信息。

能否请您检查此代码。在该代码中,将在Tkinter GUI中插入该代码号,并将不断增加。但我想插入文本形式的给定列表。如何从列表中插入文本。请帮助。

from tkinter import *
import threading
import queue
from time import sleep
import random
import tkinter as tk

list1 = ['Text 1', 'Text 2','Text 3','Text 4','Text 5','Text 6','Text 7',
         'Text 8','Text 9','Text 10','Text 11']

class Thread_0(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        count = 0
        while True:
            count+=1
            hmi.thread_0_update(count)
            sleep(random.random()/100)

class HMI:
    def __init__(self):
        self.master= tk.Tk()
        self.master.geometry('200x200+1+1')

        f=tk.Frame(self.master)
        f.pack()

        self.l0=tk.Label(f)
        self.l0.pack()

        self.q0=queue.Queue()

        self.master.bind("<<Thread_0_Label_Update>>",self.thread_0_update_e)

    def start(self):
        self.master.mainloop()
        self.master.destroy()

    def thread_0_update(self,val):
        self.q0.put(val)
        self.master.event_generate('<<Thread_0_Label_Update>>',when='tail')


    def thread_0_update_e(self,e):
        while self.q0.qsize():
            try:
                val=self.q0.get()
                self.l0.config(text=str(val))
#                self.l0.config(text=val)
            except queue.Empty:
                pass

##########################
if __name__=='__main__':
    hmi=HMI()
    t0=Thread_0()
    t0.start()
    hmi.start()

0 个答案:

没有答案