This question already has answers here:
How do you run your own code alongside Tkinter's event loop?
                                
                                    (5个答案)
                                
                        
                                上个月关闭。
            
                    
我想创建一个小动画,使文本出现在旧的单色终端(如屏幕)上,就像有人在键入文本一样。但是,在GUI窗口打开后,我经常遇到尝试运行代码的问题。窗口打开或根本不显示时,文本始终已经存在。任何帮助都非常感激:)

string = "Hello World this is a Test String"

import random
import time
import tkinter as tk
from tkinter import *

vid = tk.Tk()
vid.title('Terminal')

text = Text( vid, width = 100, height = 50,  highlightthickness=1, bg='black', highlightbackground="black", font=('Courier', 14), fg='green')
text.pack()

def main():
for i in string:
    text.insert(END, i)
    time.sleep(0.2)

text.after(10, main)
vid.mainloop()


到目前为止,这是我想出的:/

最佳答案

睡觉后需要使用update_idletasks()。以下内容对我有用,如有其他问题,请告诉我:

string = "Hello World this is a Test String"

import random
import time
import tkinter as tk
from tkinter import *

vid = tk.Tk()
vid.title('Terminal')

text = Text( vid, width = 100, height = 50,  highlightthickness=1, bg='black', highlightbackground="black", font=('Courier', 14), fg='green')
text.pack()

def main():
    for i in string:
        text.insert(END, i)
        time.sleep(0.2)
        vid.update_idletasks()

vid.after(10, main)
vid.mainloop()

关于python - 在Python Tkinter中,如何在mainloop窗口打开后运行代码? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59516778/

10-12 23:30