【发布时间】:2021-12-27 01:59:44
【问题描述】:
我正在尝试向 Tkinter 按钮添加标签。 Tkinter 按钮有一个很棒的“文本”属性。但是我需要按钮上的另一个类似的文本字段,即每个按钮 2 个文本字段。所以我想为按钮添加一个标签作为子项。这样做的问题是它会产生不可预测的行为。按下按钮甚至只是将鼠标悬停在标签上都会导致标签消失。
button_1 = tk.Button(canvas, text='Take',command='take',width='12')
button_1.pack()
label_1 = tk.Label(button_1, text='Stream 1',font=('calibre',8))
label_1.pack()
label_1.place(x=10, y=10)
我可以通过将标签添加到与按钮相同的父级来避免这种不需要的行为。
label_1 = tk.Label(canvas, text='Stream 1',font=('calibre',8))
但是这样做我失去了使用按钮几何定位标签的便利性,例如从左侧插入 10 个像素,从按钮顶部插入 10 个像素。我计划为添加数百个这样的按钮创建一种方便的方法,并且不希望尝试计算父坐标中的每个标签。此外,作为按钮的子子,它成为按钮层次结构的一部分,即随按钮移动,随按钮隐藏等。
【问题讨论】:
-
好像已经有关于这个的问题了,比如this one,这些信息有帮助吗?
-
对于上面的两个 cmets,是的,这个问题正在解决同一个问题。但答案让我害怕。我可以将标签添加到与按钮相同的父级,并将其相对于按钮定位。即'label_1.place(in_ = btn, x=10, y=10)'。但是如果点击了标签,它将阻止接收点击的按钮。
-
@Jace999 即使您将标签的父级设置为按钮,标签仍会阻止点击。所以可以接受的答案就是你在评论中所说的:将标签的父级设置为与按钮相同并使用
.place(in_=button_1, ...)。
标签: python tkinter button label