簡體   English   中英

Python Tkinter 標簽不會破壞

[英]Python Tkinter label not destroying

所以我正在嘗試用 tkinter 制作一個程序,到目前為止,事情已經有點像預期的那樣,我幾乎實現了我想要的。 但是我在銷毀標簽方面遇到了問題。

from tkinter import *
root = Tk()
root.geometry("500x500")

def controleerAntwoord(gekozenHeld, submit, eersteHintButton):
    antwoord = entry.get()
    if antwoord == gekozenHeld:
        submit.destroy()
        eersteHintButton.destroy()
        eersteHint("destroy", button)
        startspel()


def eersteHint(superheldHint, button):
    hintTextLabel = Label(root, text = "First hint: ")
    hintLabel = Label(root, text = superheldHint)
    if superheldHint != "destroy":
        hintTextLabel.pack()
        hintLabel.pack()
        button.destroy()
    if superheldHint == "destroy":
        hintTextLabel.destroy()
        hintLabel.destroy()

def startspel():
    entry.delete(0, 'end')
    gekozenHeld = "test"
    superheldHint1 = 'hey'
    eersteHintButton = Button(root, text = "Give First Hint", command = lambda: eersteHint(superheldHint1, eersteHintButton))
    submit = Button(root, text = "Submit Answer",foreground = "blue",     command = lambda: controleerAntwoord(gekozenHeld, submit, eersteHintButton))
    eersteHintButton.pack(side = BOTTOM)
    entry.pack(side = BOTTOM)
    submit.pack(side = BOTTOM, pady = 20)



def start_up():
    name = entry.get().strip()
    if name != "":
        button.destroy()
        giveName.destroy()
        startspel()


giveName = Label(root, text="Insert your name: ")
entry = Entry(root)
button = Button(root, text="Enter", command=start_up)
entry.pack()
button.pack()

root.mainloop()

到目前為止,這是我當前的代碼,我知道它看起來很大,但是對於這個問題可以忽略很多。

至於程序如何工作,您輸入您的姓名並進入下一個窗口。 在那里您可以按下提交按鈕並輸入一些文本,以及詢問提示。

當您按下提示按鈕時,您會在屏幕上看到一些文本,當您提交正確答案(在本例中為“測試”)時,文本應該消失。 但事實並非如此。 關於我做錯了什么的任何想法?

問題是您使用的是局部變量,但期望在您第二次調用該函數時以某種方式記住該局部變量。 您的代碼所做的就是創建一個標簽,然后立即銷毀它剛剛創建的標簽。 如果您希望它銷毀之前創建的那個,您必須將其存儲在一個全局變量中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM