Python tkinter销毁方法与标签有问题

Python tkinter销毁方法与标签有问题,python,tkinter,Python,Tkinter,第一次发布到堆栈!我对Python/Tkinter很陌生,所以请容忍我 我试图编写代码,在启动时查找保存的txt文件,该文件描述所选XML文件的路径,并根据所选目录打印tkinter标签 我遇到的问题是:如果选择XML文件路径,它将打印路径——这正是我想要的。但是,如果选择另一个XML文件路径,以前打印的标签不会被销毁,新标签将应用于旧标签之上。我看到其他人也有类似的问题,我被困住了。我尝试了几种不同的方法来实现.destroy()方法,但它们似乎都不起作用。如果我的代码中存在其他错误/冗余,我

第一次发布到堆栈!我对Python/Tkinter很陌生,所以请容忍我

我试图编写代码,在启动时查找保存的txt文件,该文件描述所选XML文件的路径,并根据所选目录打印tkinter标签


我遇到的问题是:如果选择XML文件路径,它将打印路径——这正是我想要的。但是,如果选择另一个XML文件路径,以前打印的标签不会被销毁,新标签将应用于旧标签之上。我看到其他人也有类似的问题,我被困住了。我尝试了几种不同的方法来实现
.destroy()
方法,但它们似乎都不起作用。如果我的代码中存在其他错误/冗余,我不会感到惊讶。(请关注
.destroy()
问题)
,但除了这个问题,它似乎以我想要的方式工作。我没有收到此代码的任何错误消息

下面是代码现在的样子(我只发布了有问题的部分,如果您需要更多,请告诉我)

我一直在测试这个问题,首先选择一个长文件路径,然后在桌面上选择一个较短的路径。桌面上的路径将打印在上一个标签的顶部,而不是销毁上一个标签,似乎忽略了reset()函数

import xml.etree.ElementTree as ET 
from tkinter import filedialog
from tkinter import *
import tkinter as tk

root= tk.Tk() 
 
canvas1 = tk.Canvas(root, width = 750, height = 750)
canvas1.pack()

#Destroy previous label
global label_file
def reset():
    label_file.destroy()

#Function that saves selected path
def findfile():
    reset()
    global file_selected
    file_selected = filedialog.askopenfilename(filetypes=[("XML Files", "*.xml")])
    if file_selected == "":
        label_file = tk.Label(root, text= 'Error. Choose location of config.xml:', bg='red' )
        canvas1.create_window(370, 165, window=label_file)
    else:
        label_file = tk.Label(root, text= 'Saved Path: '+ file_selected, bg='yellow' )
        canvas1.create_window(370, 165, window=label_file)
        savedpath = open("path.txt", "w")
        savedpath.write(file_selected)
        
#Attempts to read save file on startup
try:
    with open('path.txt', 'r') as f:
        global file_selected
        file_selected = f.readline()   
        label_file = tk.Label(root, text= 'Path: ' + file_selected, bg='#00ff00' )
        canvas1.create_window(370, 165, window=label_file)
        button1 = tk.Button (root, text='Change Path',command=findfile, bg='orange')
        canvas1.create_window(50, 200, window=button1)
        
#If no save file on startup
except FileNotFoundError:
    file_selected = ""
    label_file = tk.Label(root, text= 'Choose location of config.xml file: ', bg='red' )
    canvas1.create_window(168, 165, window=label_file)
    button2 = tk.Button (root, text='Browse',command=findfile, bg='orange') 
    canvas1.create_window(50, 200, window=button2) 

root.mainloop()

你能告诉我们你的错误吗?我们现在确实需要猜测这些信息。我没有收到任何错误消息。如果为XML文件选择目录路径,它将打印路径。然后,如果您选择另一个目录路径,它将在旧标签上打印新路径,而不是销毁旧标签。
labe_文件
findfile
的内部是一个局部变量。@BryanOakley谢谢!!!!!!!!!!哦,天哪,我怎么会错过呢。让它起作用了。为什么首先要破坏标签?只需更改它的
text
选项。