如何在Tkinter中动态调整按钮文本大小?


假设我们在Tkinter框架中创建了一个按钮和一个标签。任务是允许按钮文本动态调整其主窗口大小。我们可以使用**按钮部件**创建按钮。但是,还有其他几个函数用于动态创建按钮标签。

在这个例子中,我们将创建两个带有标签的按钮。通过使用**Grid方法**,例如**rowconfigure()**和**columnconfigure()**,我们将动态调整主窗口或根窗口的大小。

为了使按钮文本动态化,我们将使用**bind(, command)**方法,这将帮助我们将函数和方法绑定在一起。我们可以传递一个**回调函数**,它通常指的是部件的新位置,以及一个**辅助函数**,根据窗口大小修改按钮文本的更改。

首先,我们将根据宽度调整按钮文本大小,然后根据高度调整。

示例

from tkinter import *

win= Tk()
win.geometry("700x300")

#Dynamically resize the window and its widget

Grid.rowconfigure(win, index=0, weight=1)
Grid.columnconfigure(win, index=0, weight=1)

#Define the function to change the size of the button text
def resize(e):
   #Get the width of the button
   w= e.width/10
   #Dynamically Resize the Button Text
   b.config(font=("Times New Roman",int(w)))
   #Resize the height
   if e.height <=300:
      b.config(font= ("Times New Roman",30))
   elif e.height<100:
      b.config(font= ("Time New Roman", 10))
#Let us Create buttons,

b=Button(win,text="Python")
b.grid(row= 0, column=0, sticky= "nsew")

win.bind('<Configure>', resize)
win.mainloop()

输出

运行上述代码将创建一个文本为“Python”的按钮,并且此按钮可以动态调整大小。

更新于:2021年3月4日

914 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告