【问题标题】:How to print characters one after another after a small delay如何在一小段延迟后一个接一个地打印字符
【发布时间】:2019-10-15 07:40:16
【问题描述】:

这个程序在延迟 0.5 后打印整个字符串。我想在延迟 0.5 后打印每个字符。怎么做。请帮助我。这个程序在延迟后打印整个单词

import tkinter as tk
import time
class tab:
    i=0
    def __init__(self,master):
        self.input=tk.Entry(master,text="Input")
        self.input.grid(column=1,row=1)
        self.button=tk.Button(master,text="Click me!",command=self.printt)
        self.button.grid(column=1,row=2)
        self.label=tk.Label(master,text="")
        self.label.grid(column=1,row=3)
    def printt(self):
        try:
            t=str(self.input.get())
            tab.i=0
            while(tab.i< len(t)):
                  self.label['text']=self.label['text'] + t[tab.i]
                  time.sleep(0.5)
                  tab.i = tab.i + 1

        except ValueError:
            self.label['text']="Error"
            return



root=tk.Tk()
tab(root)
root.geometry('300x400')
root.mainloop()

【问题讨论】:

标签: python tkinter


【解决方案1】:

我从 python 邮件列表中获得了这个代码。朋友们感谢您的支持和帮助

import tkinter as tk

class App(tk.Tk):
    def __init__(self,*args, **kwargs):
         tk.Tk.__init__(self, *args, **kwargs)
         self.label = tk.Label(self, text="", width=20, anchor="w")
         self.label.pack(side="top",fill="both",expand=True)
         self.print_label_slowly("Hello, world!")

    def print_label_slowly(self, message):
         '''Print a label one character at a time using the event loop'''
         t = self.label.cget("text")
         t += message[0]
         self.label.config(text=t)
         if len(message) > 1:
             self.after(500, self.print_label_slowly, message[1:])

app = App()
app.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多