First attempt。
在这里,您可以看到字体如何更改大小和文本小部件更改大小。我需要文本小部件来保持其大小。我尝试在框架中创建文本小部件并生成frm.grid_propagate (False)
。您在second attempt中看到的结果。
在第二次尝试中,窗口小部件现在只能减少,它无法增加。但是当字体大小很大时,文本将打印在文本小部件边框之外,并且不可见
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)
此代码与我的second attempt具有相同的错误。
当我们点击按钮大小文字增加时,小部件也会增加。但我有一个' fontUp'只增加所选文本的功能。该功能的工作方式如下:首先选择文本,然后单击按钮,文本增加,但小部件不增加是我需要的。如何使文本更改其大小,并且窗口小部件不会更改其大小
答案 0 :(得分:1)
对我来说,最好的解决方案是将窗口小部件大小设置为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)