第一次尝试 https://i.stack.imgur.com/kN2RQ.gif。
在这里您可以看到字体如何更改大小以及文本小部件如何更改大小。我需要文本小部件来保持其大小。我尝试在框架中创建一个文本小部件并制作frm.grid_propagate (False)
。您在中看到的结果第二次尝试 https://i.stack.imgur.com/IN3Nb.gif。
在第二次尝试中,小部件现在只能减少,而不能增加。但是当字体大小很大时,文本会打印在文本小部件边框之外并且不可见
from tkinter import*
import tkinter as tk
def fontUp():
global count
if text.tag_ranges('sel'):
text.tag_add('colortag_' + str(count), SEL_FIRST,SEL_LAST)
text.tag_configure('colortag_' + str(count),font='Area 35')
count+=1
else:
text.configure(font='Area 30')
count=0
root = tk.Tk()
root.geometry("800x800")
frm = tk.Frame(root, height = 300, width = 500)
frm.grid(row = 0, column = 0)
frm.grid_propagate(False)
text = tk.Text(frm, height = 20, width = 50)
text.grid(row = 0, column = 0)
btn = tk.Button(root, text="Font bigger", command = fontUp)
btn.grid(row = 2, column = 0)
这段代码和我的有同样的错误第二次尝试 https://i.stack.imgur.com/IN3Nb.gif.
当我们单击按钮大小时,文本会增大,小部件也会增大。但我有一个“fontUp”函数,它只增加选定的文本。该函数的工作原理如下:首先选择文本,然后单击按钮,文本会增加,但小部件不会增加,这正是我所需要的。如何让文本改变大小,而小部件不改变大小
对我来说,最好的解决方案是将小部件大小设置为 0 或 1,然后让几何管理使窗口增大或缩小以适合包含的框架。这是可行的,因为字体更改仅影响窗口的所需大小,而不影响实际大小,并且所需大小基于宽度和高度。实际大小由包含框架控制。
在下面的示例中我使用pack
对于文本小部件。它适用于grid
也是如此,但需要额外的几行代码来给出行和列的权重。由于文本小部件是包含框架中唯一的小部件,pack
更容易使用。
frm = tk.Frame(root, height = 300, width = 500)
frm.grid(row = 0, column = 0)
frm.pack_propagate(False)
text = tk.Text(frm, height = 0, width = 0)
text.pack(fill="both", expand=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)