【问题标题】:tkinter Label overlap (.place(),.pack())tkinter 标签重叠 (.place(),.pack())
【发布时间】:2023-03-21 15:03:02
【问题描述】:
def func(list,n):
    if n==1:
        text=round(kcal_measure(sport.get(),now[0],time.get()),1)
        list.append(text)
        Label(newWindow,text=sport.get()+"KCAL: "+str(text)+"kcal").place(x=60,y=132)
        time.delete(0,END)
    if n==2:
        Label(newWindow,text="Total KCAL: "+str(sum(list))+"kcal").pack()

Button(newWindow,text="add",command=lambda:func(k,1)).place(x=105,y=105)
Button(newWindow,text="ok",command=lambda:func(k,2)).place(x=155,y=105)

.place() output

def func(list,n):
    if n==1:
        text=round(kcal_measure(sport.get(),now[0],time.get()),1)
        list.append(text)
        Label(newWindow,text=sport.get()+"KCAL: "+str(text)+"kcal").pack()
        time.delete(0,END)
    if n==2:
        Label(newWindow,text="Total KCAL: "+str(sum(list))+"kcal").pack()

Button(newWindow,text="add",command=lambda:func(k,1)).place(x=105,y=105)
Button(newWindow,text="ok",command=lambda:func(k,2)).place(x=155,y=105)

.pack() output

我希望标签不与按钮重叠。 首先,我使用 .place()。但是这种方法在标签之间重叠。 接下来,我使用 .pack()。但是这个方法在标签之间不重叠,而是和按钮重叠。

标签和按钮如何摆放整齐?

【问题讨论】:

  • 您不应在同一框架/窗口中同时使用.pack.place。只坚持其中之一。我更喜欢使用.pack
  • @TheLizzard 但是,在使用.pack时,按钮不是放在两边,而是上下放置。
  • 您知道可以传入side=... 参数,该参数可以是以下之一:"top""bottom""left""right"
  • @hyem_msg 您可以将按钮放在框架中。然后您可以在您的案例中的所有小部件上使用.pack()
  • @acw1668 我可以使用框架解决这个问题。谢谢。

标签: python tkinter button label overlap


【解决方案1】:

最好的解决方案是在这种情况下根本不使用place。虽然place 适用于某些用途,但它通常不是正确的工具。

在您的情况下,我建议创建一个框架来保存按钮,然后使用 pack 将该框架添加到其他小部件下方。然后,您可以根据需要将按钮放在该框架内。

【讨论】:

  • 我使用框架解决了这个问题。从现在开始我应该避免使用.place()。谢谢你的建议!
猜你喜欢
  • 2023-02-08
  • 1970-01-01
  • 2021-11-29
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 2014-09-18
  • 2012-08-29
相关资源
最近更新 更多