[英]how do i solve this type of error in tkinter?
我在一个类中使用 L_F_W_O_P 函数在 tkinter 中制作一个LabelFrame
小部件。 当我想使用 destroy 方法时,我收到此错误:
'NoneType' 对象没有属性 'destroy'
Learning_frame_label_on_win=win.L_F_W_O_P(win,'Learning',0,0,400,600)
def L_F_W_O_P(self,L_F_W_O_P_main_frame,
L_F_W_O_P_text,
L_F_W_O_P_x,
L_F_W_O_P_y,
L_F_W_O_P_width,
L_F_W_O_P_height):
if L_F_W_O_P_main_frame==win:
self.L_F_W_O_P_main_frame = self.win
else:
self.L_F_W_O_P_main_frame = L_F_W_O_P_main_frame
self.L_F_W_O_P_text = L_F_W_O_P_text
self.L_F_W_O_P_x = L_F_W_O_P_x
self.L_F_W_O_P_y = L_F_W_O_P_y
self.L_F_W_O_P_width = L_F_W_O_P_width
self.L_F_W_O_P_height = L_F_W_O_P_height
self.L_F_W_O_P_1 = LabelFrame(self.L_F_W_O_P_main_frame,
width=self.L_F_W_O_P_width,
height=self.L_F_W_O_P_height,
text=self.L_F_W_O_P_text)
self.L_F_W_O_P_1.place(x=L_F_W_O_P_x, y=L_F_W_O_P_y)
self.L_F_W_O_P_1.grid_propagate(False)
是的,就像 jasonharper 所说的,L_F_W_O_P 没有 return 语句,所以它默认返回 None,所以如果你尝试调用Learning_frame_label_on_win.destroy()
,它会失败,因为 Learning_frame_label_on_win 是 None。
我建议执行以下操作:
# Create Label
win.L_F_W_O_P(win,'Learning',0,0,400,600)
# Destroy Label
win.L_F_W_O_P_1.destroy()
此外,考虑去掉 L_F_W_O_P_main_frame 变量并从参数中删除 win,因为它似乎是不必要的,因为您可以只调用 self(即 win)而不是创建新变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.