【问题标题】:I am having problems with removing tkinter widgets我在删除 tkinter 小部件时遇到问题
【发布时间】:2023-04-11 10:45:01
【问题描述】:

我无法获取屏幕上的小部件这一事实存在问题。我曾尝试使用(widget).forget(),但它不起作用?有人可以帮忙吗?

【问题讨论】:

  • 您使用的是什么几何管理器?有.pack、.grid。和.place。如果你使用 .grid,你必须使用 .grid_forget()。
  • 我正在使用.place()
  • 我试过 place_forget() 但没用
  • 通常不建议使用位置管理器,因为如果有任何变化,它可能会丢弃其他小部件,导致您必须重新放置所有东西。我认为 place_forget 应该工作。发布代码的 sn-p 以查看问题是否在其他地方可能对您有所帮助。
  • 正如您目前所写的问题,尚不清楚我们如何为您提供帮助。打个比方,你基本上是在说“我的车有问题,我试过用扳手但没用。有人可以帮忙吗?”不知道问题出在哪里,甚至不知道您拥有什么样的汽车,我们怎么能提供任何真正能帮助您的东西?

标签: python tkinter widget


【解决方案1】:

看起来您的代码在发布时有点混乱。看起来问题在于您创建了按钮并将其放置在一个操作中。 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()

【讨论】:

    【解决方案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”的属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多