我有这样的代码
frame = tk.Frame(self.root.canvas)
frame.place(x = coords.x, y = coords.y, width = frameWidth*3, height = frameHeight)
tk.Text(frame).pack(side=tk.LEFT)
tk.Text(frame).pack(side=tk.LEFT)
tk.Text(frame).pack(side=tk.LEFT)
我希望每个文本框都具有宽度frameWidth,但由于某些原因,它们正在扩展以填充整个框架。有人知道为什么会这样吗
您可以尝试对文本小部件使用以下属性
如果使用这种方法,则必须进行一些硬编码才能获得正确的宽度
此后,我在tkinter中找到了一个动态文本框大小的解决方案。您需要做的是用一个框架包装每个文本小部件,并将框架的pack_propagate(或grid_propagate)设置为0;然后,文本框将展开填充框架,并将以与框架相同的方式动态调整大小
例如:
由于默认的包装面为顶部,这将创建三个垂直堆叠的文本框,分别为宽度frame.width和高度frame.height/3。这很方便,因为它允许您以像素而不是文本单位来处理文本框大小,并且如果调整边界框的大小,文本框也会自动调整大小
相关问题 更多 >
编程相关推荐