我对无法获得屏幕小部件的事实有疑问。我尝试使用(widget).forget()
,但是不起作用?有人可以帮忙吗?
答案 0 :(得分:0)
看起来像您发布的代码有些混乱。看来问题出在您创建按钮并将其放在一个动作中。 pack / place / grid函数返回None,因此未将“ knapp1”分配给该按钮。您要做的就是创建按钮并将其分配给knapp1变量,然后在新行上打包/放置/网格。
如果您不知道,也无法混合使用网格和打包管理器。
一旦您变得更加舒适,就可以在制作UI时使用类。它使引用UI和调用函数中的内容变得更加容易。
from tkinter import*
root = Tk()
bilde1 = PhotoImage(file='untitled.png')
bilde2 = PhotoImage(file='ikke navngitt.png')
def but1():
knapp1.place_forget()
label1 = Label(root, image=bilde1).pack()
knapp1 = Button(root, image=bilde2,command=but1)
knapp1.place(x=0,y=3)
root.mainloop()
答案 1 :(得分:-2)
from tkinter import*
root = Tk()
bilde1 = PhotoImage(file='untitled.png')
bilde2 = PhotoImage(file='ikke navngitt.png')
def but1():
knapp1.pack_forget()
label1 = Label(root, image=bilde1).pack()
knapp1 = Button(root, image=bilde2,command=but1).place(x=0,y=3)
root.mainloop()
这就是我所拥有的。当我单击按钮时,它失败并说“ nonetype”没有“ pack_forget”属性