Python tkinter文本小部件插入速度减慢
我对tkinter文本小部件有问题。基本上,我正在尝试将输出写入两个不同的文本小部件。随着时间的推移,框的输出速度会减慢,文本开始在多行上输出 我这里有一些python代码,如果您想观察的话,可以运行它们Python tkinter文本小部件插入速度减慢,python,text,tkinter,widget,tk,Python,Text,Tkinter,Widget,Tk,我对tkinter文本小部件有问题。基本上,我正在尝试将输出写入两个不同的文本小部件。随着时间的推移,框的输出速度会减慢,文本开始在多行上输出 我这里有一些python代码,如果您想观察的话,可以运行它们 from tkinter import * import sys import time from threading import Thread from threading import Timer from multiprocessing import Process, Queue im
from tkinter import *
import sys
import time
from threading import Thread
from threading import Timer
from multiprocessing import Process, Queue
import queue
import serial
threadqueue = queue.Queue()
processqueue = Queue()
data = True
class MainGui():
def __init__(self):
self.root = Tk()
self.root.title("Test")
self.root.geometry("1280x1024")
self.root["bg"] = "gray55"
self.o_box()
self.f_o_data_box()
self.read_serial()
self.root.mainloop()
def o_box(self):
self.serialbox = Text(self.root,
bg="black",
fg="white",
height=10,
width=105)
self.serialbox.place(x=10, y=780)
def f_o_data_box(self):
self.faultdata = Text(self.root,
bg="gray93",
fg="red",
height=61,
width=65)
self.faultdata.place(x=780, y=13)
def run(self):
pass
def update_gui(self):
self.root.update()
def read_serial(self):
try:
self.serialbox.insert(CURRENT, str(processqueue.get()).encode('ascii'))
self.faultdata.insert(CURRENT, str(processqueue.get()).encode('ascii'))
self.serialbox.see("end")
self.faultdata.see("end")
self.root.after(10, self.read_serial)
except queue.Empty:
self.root.after(100, self.read_serial)
def run():
ser = serial.Serial()
while 1:
processqueue.put(str("Hello").encode('ascii'))
continue
def main():
try:
SerialProcess = Process(target=run)
SerialProcess.start()
MainWindow = MainGui();
MainWindow.run();
SerialProcess.join()
except KeyboardInterrupt:
sys.exit(1)
if __name__ == "__main__":
main()
我的猜测是,出于某种原因,多个文本框被实例化在彼此的顶部或其他地方。。。因此,随着时间的推移,输出速度变慢,输出行为变得奇怪。但我找不到这种行为的根源。有谁能解释为什么会发生这种情况,或者我的问题在哪里?我尝试查看tk()、mainloop()的行为,并尝试在代码中查找重复调用新窗口的实例。。。这些我都没注意到
我对python相当陌生,因此非常感谢您的帮助 我认为文本小部件有性能问题,因为它的行很长。插入的数据中是否有换行符?在这个程序中似乎没有。现在没有。有更好的方法可以使用吗?没有适合显示数千个字符而不换行的tkinter小部件。这根本不是它设计的目的。我有一个版本,它使用换行符,同样的行为。我找不到任何文档表明它不能做任何事情,因此我认为我做得不对。我认为文本小部件有性能问题,行数很长。插入的数据中是否有换行符?在这个程序中似乎没有。现在没有。有更好的方法可以使用吗?没有适合显示数千个字符而不换行的tkinter小部件。这根本不是它设计的目的。我有一个版本,它使用换行符,同样的行为。我找不到任何暗示它不能做的文档,所以我认为我做得不对。