文本和按钮Python Tk GUI

文本和按钮Python Tk GUI,python,button,text,tkinter,Python,Button,Text,Tkinter,在Python Tk GUI中,如何在按下按钮后逐个显示插入的文本?我成功地运行了下面的程序,但它在最后一个文本的末尾将所有插入的文本一起填充。我想根据插入文本的顺序相应地更新文本字段。有人能帮忙吗?谢谢 from Tkinter import * root = Tk() root.geometry("300x400") def startProgram(shapefile_path): t1 = "testing on file 0 successfull\n" text

在Python Tk GUI中,如何在按下按钮后逐个显示插入的文本?我成功地运行了下面的程序,但它在最后一个文本的末尾将所有插入的文本一起填充。我想根据插入文本的顺序相应地更新文本字段。有人能帮忙吗?谢谢

from Tkinter import *

root = Tk()
root.geometry("300x400")

def startProgram(shapefile_path):

    t1 = "testing on file 0 successfull\n"
    text.insert('1.0', t1)

    t2 = "testing on file 1 successfull\n" 
    text.insert('1.0', t2)

    t3 = "testing on file2 successfull\n" 
    text.insert('1.0', t3)

text = Text(root, height=8, width=25)
text.grid(row=10, column=0, padx=20, pady=5)

label = Label(root, text="Status",font=12)
label.grid(row=9, column=0, padx=5, pady=5)


button2=Button(root,text="Start Program", width=20,font=12,command=lambda:     startProgram(0))
button2.grid(row=7, column=0, padx=20, pady=10)

button3=Button(root, text='Exit Program',    width=20,font=12,command=root.destroy)
button3.grid(row=8, column=0,padx=20, pady=10)

root.mainloop()

据我所知,你想颠倒插入顺序?如果是,则可以使用
INSERT
,而不是
1.0

from Tkinter import *

root = Tk()
root.geometry("300x400")

message_list = ["testing on file 0 successfull\n",
                "testing on file 1 successfull\n",
                "testing on file2 successfull\n"]

message_list_idx = 0;


def startProgram():
    global message_list_idx

    if message_list_idx >= len(message_list):
        return
    t3 = message_list[message_list_idx]
    text.insert('1.0', t3)
    message_list_idx += 1


text = Text(root, height=8, width=25)
text.grid(row=10, column=0, padx=20, pady=5)

label = Label(root, text="Status",font=12)
label.grid(row=9, column=0, padx=5, pady=5)


button2=Button(root,text="Start Program", width=20,font=12,
               command=startProgram)

button2.grid(row=7, column=0, padx=20, pady=10)

button3=Button(root, text='Exit Program',width=20,font=12,
                    command=root.destroy)
button3.grid(row=8, column=0,padx=20, pady=10)

root.mainloop()
button2=Button(root,text="Start Program", width=20,font=12,
               command=startProgram)

button2.grid(row=7, column=0, padx=20, pady=10)

button3=Button(root, text='Exit Program',width=20,font=12,
                    command=root.destroy)
button3.grid(row=8, column=0,padx=20, pady=10)

root.mainloop()

感谢您的重播,实际上并没有颠倒插入顺序,我想按照文本t1、t2、t3的顺序逐个更新文本字段。当前代码同时显示所有文本。有什么建议吗?所以你想在插入文本之前清除文本字段,或者在显示新文本之前引入一些延迟(例如1s)?我想在按下按钮后在文本字段中相应地打印任何新出现的文本,这就像跟踪程序的过程一样。我试图清除以前插入的文本并显示新的内容,但上面的代码只是在按下按钮操作后显示最后一个文本内容,换句话说,它只显示最后一个插入的文本,而不是一个接一个地显示一个文本,即使您在两个文本之间设置了时间延迟。@HotPat1000抱歉,我仍然不理解。也许你可以修改你的问题,提供更多信息,一些示例输入,屏幕截图等@Marcin感谢你的患者。让我重新表述一下,我真正想做的是,当我在GUI中按下“启动程序”按钮时,“启动程序”功能应该一个接一个地运行并显示文本,例如先显示文本1,然后再显示文本2,最后是显示文本3。但是,我上面写的代码并不能完成这项工作,它只在运行函数“startProgram”后显示所有文本一次。所以我的问题是,如何在函数中按顺序逐个显示文本(t1,t2,t3)。如果你能运行上面的代码,你可能会更清楚。谢谢