【问题标题】:Python tkinter same Label called multiple timesPython tkinter多次调用相同的标签
【发布时间】:2016-03-09 19:40:53
【问题描述】:

有没有办法多次使用同一个标签? 我所拥有的是:

emptyRow = Label(frame)

当我想使用那个空行时,我这样称呼它:

emptyRow.grid(row=0)
emptyRow.grid(row=3)

我只能在该网格上进行最新调用,因此 row=0 将被忽略而 row=3 将被使用,任何重用它的方式,所以我不必创建另一个 emptyRow3 = Label(frame)

【问题讨论】:

  • 你不能同时将同一个小部件放在不同的位置...如果你不想给一个新的名字,你不能使用 Label(frame).grid(row =3) ?
  • 也可以使用rowconfigure获取空行显示 --> main.rowconfigure(0, weight=1, minsize=50) tkinter.unpythonic.net/pydoc/Tkinter.Grid.html

标签: python tkinter label code-reuse


【解决方案1】:

简短的回答:不,你不能在多个地方显示一个小部件/创建几个空标签而不为每个标签调用Label(frame)

如果创建一个空标签是你经常做的事情,你可以做一个简短的函数来做:

def fill_empty(parent,row,column):
    empty = Label(parent)
    empty.grid(row=row,column=column)
    return empty

但我强烈建议使用填充而不是虚拟小部件来分隔内容,有关详细信息,请参阅 this documentation

【讨论】:

    【解决方案2】:

    您可以将您的元素定义为返回元素的函数。每次调用它都会创建一个新对象:

    emptyRow = lambda:Label(frame)
    
    emptyRow().grid(row=0)
    emptyRow().grid(row=3)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 2013-04-22
      • 2012-07-20
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多