python-3.x - 调整窗口大小时如何调整所有小部件和文本的大小
问题描述
现在我现在已经有很多类似的问题了,但没有一个有效,而且很多已经过时了。从我收集的内容来看,人们总是推荐grid_rowconfigure
and grid_columnconfigure
,但这与文本大小无关。这是一个简单的例子:
from tkinter import *
root=Tk()
l1 = Label(root, text="This", borderwidth=2, relief="groove")
l1.grid(row=0,column=0,sticky='NSEW')
l2 = Label(root, text="That", borderwidth=2, relief="groove")
l2.grid(row=0,column=1,sticky='NSEW')
for i in range(1):
root.grid_rowconfigure(i, weight=1)
for i in range(2):
root.grid_columnconfigure(i, weight=1)
root.mainloop()
我找到了这个网站,但它是从 2010 年开始的,复制粘贴它没有得到任何结果(当然是在处理导入名称之后)
解决方案
我发现这会起作用:
from tkinter import *
import tkinter.font as tkFont
root=Tk()
my_font = tkFont.Font(size=10)
def resizer(event):
if event.width in range(200,225):
my_font.configure(size=10)
elif event.width in range(226,300):
my_font.configure(size=20)
elif event.width > 300:
my_font.configure(size=30)
l1 = Label(root, text="This", borderwidth=2, relief="groove", font=my_font)
l1.grid(row=0,column=0,sticky='NSEW')
l2 = Label(root, text="That", borderwidth=2, relief="groove", font=my_font)
l2.grid(row=0,column=1,sticky='NSEW')
for i in range(1):
root.grid_rowconfigure(i, weight=1)
for i in range(2):
root.grid_columnconfigure(i, weight=1)
root.bind("<Configure>", resizer)
root.mainloop()
您可以更改range(200,225)
等以满足您的需要,elif
如果需要,还可以额外更改。
这是从这个答案中找到的。并进行了编辑以适应此脚本。
推荐阅读
- if-statement - 基于右侧和上方单元格值的单元格总和
- unit-testing - Unittest:如何在类中设置属性
- php - 为什么 zip 文件夹不是用 PHP 创建的
- android - 如何录制实时流媒体视频,从 SurfaceView 捕获照片并将其保存在手机内部存储中
- php - Php GraphQL 实现响应比 REST 慢
- sql - BigQuery SQL 从具有多个站点的位置数据跟踪兴趣点的停留时间
- java - 如何在 android 中使用 firebase 打开聊天活动时停止显示通知?
- excel - 发送 Tab 按钮按键事件 10 次并循环递增 1
- react-native - 使用 react-router-dom 或标签React-Redirect 到外部链接
- python - 无法使用python自动点击mac