如何清除一堆python标签,但仅在调用它们时清除
大家好,各位飞越者 我正在写一个小程序,它可以做一些数据库的事情,我试图删除一个标签,但只有当它被调用时 这是我的全部功能之一,但底部的部分是我试图删除标签的地方如何清除一堆python标签,但仅在调用它们时清除,python,tkinter,label,Python,Tkinter,Label,大家好,各位飞越者 我正在写一个小程序,它可以做一些数据库的事情,我试图删除一个标签,但只有当它被调用时 这是我的全部功能之一,但底部的部分是我试图删除标签的地方 def entry_a_result(self): count = 0 counta = 0 fullfile = fullGUI.f_or() if len(self.e.get()) > 0: #print(self.e.get())
def entry_a_result(self):
count = 0
counta = 0
fullfile = fullGUI.f_or()
if len(self.e.get()) > 0:
#print(self.e.get())
file_obj = open(fullfile, "r+")
fullstring = self.e.get()
x = fullstring[5:9]
try:
while(fullstring.startswith("get *") and count < 1):
self.la = Label(root, text = file_obj.read() + "\n" + "--------")
self.la.pack(side=TOP, anchor=N)
count = 1
while(fullstring.startswith("get |" + x) and count < 1):
count = 1
lines = file_obj.readlines()
for line in lines:
if x in line:
self.lb = Label(root, text=line + "\n" + "--------")
self.lb.pack(side=TOP, anchor=N)
else:
pass
**while(fullstring.startswith("clear") and count < 1):
count = 1
labela = self.la.winfo_exists()
labelb = self.lb.winfo_exists()
if labela == 1:
self.la.destroy()
if labelb == 1:
self.lb.destroy()**
def输入结果(自身):
计数=0
counta=0
fullfile=fullGUI.f_或()
如果len(self.e.get())>0:
#打印(self.e.get())
file_obj=open(完整文件,“r+”)
fullstring=self.e.get()
x=完整字符串[5:9]
尝试:
while(fullstring.startswith(“get*”)和count<1):
self.la=标签(根,文本=文件\u obj.read()+“\n”+“-----------”)
自组装(侧=顶部,锚=N)
计数=1
while(fullstring.startswith(“get |“+x)和count<1):
计数=1
lines=文件_obj.readlines()
对于行中的行:
如果x在直线上:
self.lb=标签(根,文本=行+“\n”+“----------”)
自磅包装(侧=顶部,锚=N)
其他:
通过
**while(fullstring.startswith(“清除”)和count<1):
计数=1
labela=self.la.winfo_exists()
labelb=self.lb.winfo_存在()
如果labela==1:
self.la.destroy()
如果labelb==1:
self.lb.destroy()**
看起来winfo_exists()只有在创建标签时才起作用,否则不会将自身附加到变量
为了澄清任何混乱
当且仅当标签存在时,我尝试销毁或移除标签。在本例中,每当我调用程序中当前正在工作的某个参数时(在该情况下,我的参数工作)我不知道为什么您使用
count
和而count您可以使用self.la=None
通知小部件还不存在。然后,您可以使用if self.la:
来检查它-您不需要winfo_exists()
self.la
和self.lb
只保留最后一个标签-可能保留某些列表中的所有标签self.la=[]
和self.la.append(标签(…)
其他:pass
没有用-你可以删除它。self.la和self.lb本身就是标签,我尝试使用self.la=None,但似乎不起作用。我不知道为什么你要使用count
和而count你可以使用self.la=None
来通知小部件还不存在。然后,您可以使用if self.la:
来检查它-您不需要winfo_exists()
self.la
和self.lb
只保留最后一个标签-可能保留某些列表中的所有标签self.la=[]
和self.la.append(Label(…)
其他:pass
无效-您可以删除它。self.la和self.lb是标签本身,我尝试使用self.la=None,但似乎不起作用。