【发布时间】:2023-02-12 12:06:44
【问题描述】:
我一直在我的 tkinter 程序中使用一个小部件,但这个小部件的问题是它显示在 Windows 标题栏下,这是我正在使用的小部件:
class LabeledEntry(ttk.Frame):
def __init__(self, master, text, width=120, insertion="0"):
super().__init__(master, width=width)
self.pack_propagate(False)
self.label = ttk.Label(self, text=text)
self.entry = ttk.Entry(self)
self.label.pack(side='left')
self.entry.pack(side='right')
显然,问题出在 pack propagate 函数上,但我需要它以便多个小部件在同一列上看起来相等。
编辑:所以,显然,问题不是它“被放在窗户后面”的事实,而是因为我不得不手动输入框架的高度,因为它不依赖于它的孩子的大小。感谢说这话的评论者。
顺便说一句,如果您想知道没有高度的情况,请看这里: https://imgur.com/a/hQCQ8eu
【问题讨论】:
-
这样的问题可能是由于您应用于
LabeledEntry的实例的几何管理,您没有向我们展示。 minimal reproducible example,请。 -
你如何创建
LabeledEntry的实例?因为你没有指定它的height,所以它将是零,因为你已经执行了self.pack_propagate(False)。 -
请出示完整的minimal reproducible example。我不明白你为什么认为它被放置在 widnow 标题栏后面。我什至不明白这在 tkinter 中是怎么可能的。由于您没有为框架指定高度,因此它只有一个像素高。
标签: python user-interface tkinter