Tkinter Python,是否可以锁定框架的大小,尽管其中有小部件。特别是文本小部件

问题描述 投票:0回答:1

我正在尝试调整一些框架的大小,然后将文本小部件打包到其中。也许我错过了一些东西。 首先,是否有一种正确的方法可以让文本小部件从框架“继承”其大小? 我试过这个

import tkinter as tk

window = tk.Tk()

f = tk.Frame(width=100, height=50, relief="raised", borderwidth=2)
f.pack()

t = tk.Text(master=f)
t.pack()

window.mainloop()

文本的默认大小会覆盖框架的大小。所以我尝试将其更改为

...
t = tk.Text(master=f, width=100, height=50)
...

而且大小差异很大,我意识到这是因为文本的高度和宽度是字符大小。所以我做了一些数学计算并得到:

...
t = tk.Text(master=f, width=12, height=6)
...

所以我真正的问题是,有没有办法将文本打包到框架中并通过像素而不是字符设置其大小?或者锁定框架的大小,而不管其中的文本如何? 出于我的目的,我在大多数情况下只需要框架中的一个小部件,但本质上我希望能够调整一堆框架的大小并将小部件打包到其中,也许这是一种更好的方法。任何想法表示赞赏

python tkinter text frame pack
1个回答
0
投票

所以我真正的问题是,有没有办法将文本打包到框架中并通过像素而不是字符设置其大小?

不可以,您不能设置文本小部件的大小(以像素为单位)。但是,您告诉它填充框架,然后告诉框架不要让子级确定其大小。由于您正在使用

pack
,因此您将使用
pack_propagate
。这将允许您设置框架的大小(以像素为单位)。

f = tk.Frame(root, width=100, height=100)
t = tk.Text(f)
f.pack_propagate(False)
t.pack(fill="both", expand=True)
© www.soinside.com 2019 - 2024. All rights reserved.