我在删除tkinter小部件时遇到问题

时间:2019-10-14 15:15:24

标签: python tkinter widget

我对无法获得屏幕小部件的事实有疑问。我尝试使用(widget).forget(),但是不起作用?有人可以帮忙吗?

2 个答案:

答案 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”属性