Tkinter screen wipe,指定

2024-10-01 22:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我是新来的论坛。在

我对python有丰富的经验,但对tkinter却一无所知。在

这是我的代码:

from tkinter import *


def Done():
     celEntry = celTempVar.get()
     print(str(celEntry))
     f = open("Name", "w")
     f.write(str(celEntry))
     f.close()

def Yes():


     celEntry = Entry (mainframe, width = 10, bd = 5, textvariable = celTempVar)
     celEntry.grid(row = 3, column = 1, pady = 10, sticky = NW, padx = 125 )

     titleLabel = Label (mainframe, text = "Enter Name", font = ("Arial", 12, "bold"), justify = LEFT)
     titleLabel.grid(row = 2, column = 1, columnspan = 3, pady = 10, padx = 20)

     DoneButton = Button (mainframe, text = "Done", font = ("Arial", 8, "bold"), relief = RAISED, bd=5, justify = CENTER, highlightbackground = "red", overrelief = GROOVE, activebackground = "black", activeforeground="blue", command = Done)
     DoneButton.grid(row = 4, column = 1, ipady = 8, ipadx = 12, pady = 5, sticky = NW, padx = 55)




###MAIN###
root = Tk()
root.title("Text Adv")
mainframe = Frame(root)
mainframe.grid()

celTempVar = StringVar()
celTempVar.set("")

titleLabel = Label (mainframe, text = "Text adventure", font = ("Arial", 20, "bold"), justify = CENTER)
titleLabel.grid(row = 1, column = 1, columnspan = 3, pady = 10, padx = 20)


f = open("Name", "r")
Name = f.read()

if Name == "":
     celEntry = Entry (mainframe, width = 10, bd = 5, textvariable = celTempVar)
     celEntry.grid(row = 3, column = 1, pady = 10, sticky = NW, padx = 125 )

     titleLabel = Label (mainframe, text = "Enter Name", font = ("Arial", 12, "bold"), justify = LEFT)
     titleLabel.grid(row = 2, column = 1, columnspan = 3, pady = 10, padx = 20)

     DoneButton = Button (mainframe, text = "Done", font = ("Arial", 8, "bold"), relief = RAISED, bd=5, justify = CENTER, highlightbackground = "red", overrelief = GROOVE, activebackground = "black", activeforeground="blue", command = Done)
     DoneButton.grid(row = 4, column = 1, ipady = 8, ipadx = 12, pady = 5, sticky = NW, padx = 55)

else:
     titleLabel = Label (mainframe, text = "Start new game?", font = ("Arial", 12, "bold"), justify = LEFT)
     titleLabel.grid(row = 2, column = 1, columnspan = 3, pady = 10, padx = 20)

     DoneButton = Button (mainframe, text = "Yes", font = ("Arial", 8, "bold"), relief = RAISED, bd=5, justify = CENTER, highlightbackground = "red", overrelief = GROOVE, activebackground = "black", activeforeground="blue", command = Yes)
     DoneButton.grid(row = 3, column = 1, ipady = 8, ipadx = 12, pady = 5, sticky = NW, padx = 55)

     DoneButton = Button (mainframe, text = "No", font = ("Arial", 8, "bold"), relief = RAISED, bd=5, justify = CENTER, highlightbackground = "red", overrelief = GROOVE, activebackground = "black", activeforeground="blue", command = Done)
     DoneButton.grid(row = 4, column = 1, ipady = 8, ipadx = 12, pady = 5, sticky = NW, padx = 55)

root.mainloop()

因此,我希望在Yes()运行时,在屏幕上发出呜呜声。在

很简单,但其他的答案我都不太明白。在

如果你能在我的代码中实现一个擦除函数那就太好了。在

Atm我只是在尝试其他人的代码,所以变量名是CeltoFar之类的东西。在

如果你不明白我的意思是从gui中删除所有小部件,或者删除一个特定的小部件。在

请不要留下任何仇恨!在

谢谢

是的,我喜欢新的段落:)


Tags: textcolumngridrowfontbolddonejustify
1条回答
网友
1楼 · 发布于 2024-10-01 22:31:30

你可以销毁一个小部件,这将把它从屏幕上删除。只需在小部件上调用destroy方法。当您销毁一个小部件时,它的所有子部件也将被销毁。例如,如果你想销毁一个框架中的所有小部件,你只需要销毁框架。在

如果只想从屏幕上删除它们而不是销毁它们,可以调用grid_removegrid_forgetpack_forget或{}小部件,这取决于您如何将它们放在屏幕上。在

当然,您也可以重置小部件的值,而不是将它们从屏幕上删除或删除。如何做到这一点取决于小部件的类型,但是所有小部件都可以在不被破坏的情况下重新配置。在

相关问题 更多 >

    热门问题