重新调整窗口小部件时,我希望文本可以与窗口小部件的其余部分一起缩放。
以下是一些使用click-n-drag缩放窗口小部件的代码。这样做很好,但文字没有缩放。
import tkinter as tk
#Create & Configure root
root = tk.Tk()
Grid.rowconfigure(root, 0, weight=1)
Grid.columnconfigure(root, 0, weight=1)
#Create & Configure frame
frame=tk.Frame(root)
frame.grid(row=0, column=0, sticky=N+S+E+W)
#Create a 5x10 (rows x columns) grid of labels inside the frame
for row_index in range(5):
Grid.rowconfigure(frame, row_index, weight=1)
for col_index in range(10):
Grid.columnconfigure(frame, col_index, weight=1)
btn = tk.Label(frame, text="Row %s: Col %s" % (row_index, col_index),
background = "#F8FC10") #create a label inside frame
btn.grid(row=row_index, column=col_index, sticky=N+S+E+W)
root.mainloop()
我希望文本与小部件的其余部分一起缩放。小部件可以很好地扩展,但文本没有。是否可以使用通过单击并拖动缩放的窗口小部件来显示文本比例?
答案 0 :(得分:1)
是的,可以缩放文本,但确实需要一些工作。我必须做一些非常相似的事情,我做的方式是通过字体大小。在创建“文本”窗口小部件时,默认情况下“文本”窗口小部件将获得默认字体“TkFixedFont”#。这个命名字体基本上是&#39; Courier 10&#39;或者。您可以通过Text.config(font = ...)手动设置Text字体。诀窍是根据Text小部件的相对大小更改字体的大小。因此,您可以使用某种缩放功能将Text小部件的大小转换为所需字体的大小,然后根据您计算的字体大小使用新字体更新Text小部件的字体。在您定义的'<Configure>'
事件处理程序中执行此操作,在调整Text小部件(或整个应用程序)的大小时调用该处理程序。
在我的应用程序中,我有用于放大和缩小的按钮,我通过更改字体大小来执行此操作,如上所述。像魅力一样。
重读您的帖子,我发现您正在寻找更改某些标签的文字。创建一个新的命名字体并将其指定为所有标签的字体。然后,在'<Configure>'
处理程序中,只需使用新的字体大小更新命名字体,它将传播到使用该命名字体的所有窗口小部件。这适用于标签,按钮,文本小部件等。
另外,作为旁注,在缩放标签和其他小部件上的文本时,这些小部件的大小将根据它们显示的文本进行调整。