Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当使用Python tkinter重新缩放小部件时,如何使用小部件的其余部分缩放文本?_Python_Text_Tkinter_Widget_Scale - Fatal编程技术网

当使用Python tkinter重新缩放小部件时,如何使用小部件的其余部分缩放文本?

当使用Python tkinter重新缩放小部件时,如何使用小部件的其余部分缩放文本?,python,text,tkinter,widget,scale,Python,Text,Tkinter,Widget,Scale,当重新缩放小部件时,我希望文本与小部件的其余部分一起缩放 下面是一些代码,可以通过点击拖动来缩放小部件。这很好,但文本无法缩放 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.F

当重新缩放小部件时,我希望文本与小部件的其余部分一起缩放

下面是一些代码,可以通过点击拖动来缩放小部件。这很好,但文本无法缩放

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()

我希望文本与小部件的其余部分一起缩放。小部件可以很好地缩放,但文本不能。是否可以使用通过点击n拖动进行缩放的小部件来缩放文本?

是的,可以缩放文本,但确实需要一些工作。我必须做一些非常类似的事情,我做的方式是通过字体大小。创建文本小部件时,默认情况下,文本小部件将获得默认字体“TkFixedFont”。该命名字体本质上是“Courier 10”左右。您可以通过Text.config(font=…)手动设置文本字体。诀窍是根据文本小部件的相对大小更改字体大小。因此,您可以使用某种缩放功能将文本小部件的大小转换为所需的字体大小,然后根据计算的字体大小使用新字体更新文本小部件的字体。在您定义的
''
事件处理程序中执行此操作,当文本小部件(或整个应用程序)调整大小时,将调用该事件处理程序

在我的应用程序中,我有放大和缩小按钮,我通过如上所述更改字体大小来实现这一点。工作起来很有魅力

重读你的帖子,我发现你想更改一些标签的文本。创建新的命名字体,并将其指定为所有标签的字体。然后,在
'
处理程序中,只需使用新的字体大小更新命名字体,它就会传播到使用该命名字体的所有小部件。这适用于标签、按钮、文本小部件等

另外,作为旁注,当您缩放标签和其他小部件上的文本时,这些小部件将根据显示的文本调整大小