Python 如果语句赢了';t检测到列表不是空的| TKINTER标签
我有一个公开声明的空列表。按下按钮后,会附加一个标签<代码> IF语句在列表长度为0时执行某些操作,在长度不为0时执行不同的操作 程序检测到第一个长度为0,并相应地执行操作,但第二次它仍然像列表的长度为0一样执行操作。然后第三次它实际检测到列表不是空的。知道问题出在哪里吗 尝试了以下方法:Python 如果语句赢了';t检测到列表不是空的| TKINTER标签,python,list,tkinter,label,Python,List,Tkinter,Label,我有一个公开声明的空列表。按下按钮后,会附加一个标签 IF语句在列表长度为0时执行某些操作,在长度不为0时执行不同的操作 程序检测到第一个长度为0,并相应地执行操作,但第二次它仍然像列表的长度为0一样执行操作。然后第三次它实际检测到列表不是空的。知道问题出在哪里吗 尝试了以下方法: if len(labels) == 0 if not labels 在我的第一次设置中,如果我想设置标签pady=50,然后所有下一个标签都应该是pady=5,但在第二次设置时,它的反应仍然像列表是空的一样。仅在
if len(labels) == 0
if not labels
在我的第一次设置中,如果我想设置标签pady=50
,然后所有下一个标签都应该是pady=5
,但在第二次设置时,它的反应仍然像列表是空的一样。仅在第三次执行时使pady=5
全部代码:
import requests
from tkinter import *
master = Tk()
master.title('APPLICATION')
master.geometry("1200x750")
labels = []
def ok():
if len(labels) == 0:
my_label = Label(text="001")
my_label.pack(pady=50, side=TOP, anchor=NW)
else:
my_label = Label(text="001")
my_label.pack(pady=5, side=TOP, anchor=NW)
print(len(labels))
labels.append(my_label)
print(labels)
OKbutton = Button(master, text="OK", command=ok)
OKbutton.pack(pady=20, padx=20)
OKbutton.config(height=1, width=8)
OKbutton.place(relx=0.4, rely=0.05, anchor=N)
mainloop()
Output=这是因为
pady=50
表示小部件顶部有50个像素,底部也有50个像素。因此,如果希望填充仅位于小部件的顶部,则使用元组来指定像素,如:
pady=(50,0) # 50 on top, 0 on bottom
因此,您的代码如下所示:
if len(labels) == 0:
my_label = Label(text="001")
my_label.pack(pady=(50,0), side=TOP, anchor=NW) # 50px top, nothing on bottom
你能发布代码或示例吗?请添加代码和所有相关细节。这还不够。你能发布你的“if-else”序列吗?请展示你初始化和更改标签值的方式。这里我们需要一个完整的工作示例,以便我们能够提供帮助,因此请找出问题所在。请提供一个工作示例