Python Tkinter窗口字体在拉伸窗口时动态展开
我已经创建了一个Tkinter GUI,我想在窗口扩展时使字体扩展。到目前为止,我已经试过了重量,但只有窗户扩大了,字母没有。下面的脚本是我试图创建的代码示例Python Tkinter窗口字体在拉伸窗口时动态展开,python,tkinter,font-size,Python,Tkinter,Font Size,我已经创建了一个Tkinter GUI,我想在窗口扩展时使字体扩展。到目前为止,我已经试过了重量,但只有窗户扩大了,字母没有。下面的脚本是我试图创建的代码示例 from tkinter import ttk import tkinter as tk from tkinter.scrolledtext import ScrolledText from tkinter import* from tkinter.ttk import * master = tk.Tk() #Title of GUI
from tkinter import ttk
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
from tkinter import*
from tkinter.ttk import *
master = tk.Tk()
#Title of GUI
master.title("Test Name")
#Seperate first GUI tab in sections
stepOne = tk.LabelFrame(master, text=" 1. General Heatmaps: ")
stepOne.grid(row=0, columnspan=7, sticky='WE', \
padx=10, pady=10, ipadx=10, ipady=10)
master.rowconfigure(1, weight=1)
master.columnconfigure(1, weight=1)
# this wil create a label widget
l1 = Label(stepOne, text = "Input tilt:")
l2 = Label(stepOne, text = "Input wind speed:")
l3= Label(stepOne, text = "Input path:")
# grid method to arrange labels in respective
# rows and columns as specified
l1.grid(row = 1, column = 0, sticky = E, pady = 2)
l2.grid(row = 2, column = 0, sticky = E, pady = 2)
l3.grid(row = 3, column = 0, sticky = E, pady = 2)
entryTilt = Entry(stepOne)
entryWind = Entry(stepOne)
entryFolder_path=Entry(stepOne)
entryTilt .grid(row = 1, column = 1, pady = 2)
entryWind .grid(row = 2, column = 1, pady = 2)
entryFolder_path .grid(row = 3, column = 1, pady = 2)
b1 = Button(stepOne, text = "Run script")
b1.grid(row = 2, column = 2, sticky = E)
master.mainloop()
试试这个:
from tkinter import ttk
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
from tkinter import *
# from tkinter.ttk import *
wh_font_map = {k: v for k, v in zip(range(200, 1900, 50), range(10, 44))}
# {
# 200: 10,
# 250: 11,
# 300: 12,
# 350: 13,
# 400: 14,
# 450: 15,
# 500: 16,
# 550: 17,
# 600: 18,
# 650: 19,
# 700: 20,
# 750: 21,
# 800: 22,
# 850: 23,
# 900: 24,
# 950: 25,
# 1000: 26,
# 1050: 27,
# 1100: 28,
# 1150: 29,
# 1200: 30,
# 1250: 31,
# 1300: 32,
# 1350: 33,
# 1400: 34,
# 1450: 35,
# 1500: 36,
# 1550: 37,
# 1600: 38,
# 1650: 39,
# 1700: 40,
# 1750: 41,
# 1800: 42,
# 1850: 43
# }
def change_font(event):
font_size = wh_font_map[next(k for k in wh_font_map if (master.winfo_width() + master.winfo_height()) / 2 <= k)]
for widget in stepOne.winfo_children():
widget['font'] = ("", font_size)
master = tk.Tk()
# Title of GUI
master.title("Test Name")
# Seperate first GUI tab in sections
stepOne = tk.LabelFrame(master, text=" 1. General Heatmaps: ")
stepOne.grid(row=0, columnspan=7, sticky='WE', \
padx=10, pady=10, ipadx=10, ipady=10)
# master.rowconfigure(0, weight=1)
# master.columnconfigure(0, weight=1)
# this wil create a label widget
l1 = Label(stepOne, text="Input tilt:")
l2 = Label(stepOne, text="Input wind speed:")
l3 = Label(stepOne, text="Input path:")
# grid method to arrange labels in respective
# rows and columns as specified
l1.grid(row=1, column=0, sticky=E, pady=2)
l2.grid(row=2, column=0, sticky=E, pady=2)
l3.grid(row=3, column=0, sticky=E, pady=2)
entryTilt = Entry(stepOne)
entryWind = Entry(stepOne)
entryFolder_path = Entry(stepOne)
entryTilt.grid(row=1, column=1, pady=2)
entryWind.grid(row=2, column=1, pady=2)
entryFolder_path.grid(row=3, column=1, pady=2)
b1 = Button(stepOne, text="Run script")
b1.grid(row=2, column=2, sticky=E)
master.bind("<Configure>", change_font)
master.mainloop()
从tkinter导入ttk
将tkinter作为tk导入
从tkinter.scrolledtext导入scrolledtext
从tkinter进口*
#从tkinter.ttk导入*
wh_font_map={k:v代表k,v在zip中(范围(2001900,50),范围(10,44))}
# {
# 200: 10,
# 250: 11,
# 300: 12,
# 350: 13,
# 400: 14,
# 450: 15,
# 500: 16,
# 550: 17,
# 600: 18,
# 650: 19,
# 700: 20,
# 750: 21,
# 800: 22,
# 850: 23,
# 900: 24,
# 950: 25,
# 1000: 26,
# 1050: 27,
# 1100: 28,
# 1150: 29,
# 1200: 30,
# 1250: 31,
# 1300: 32,
# 1350: 33,
# 1400: 34,
# 1450: 35,
# 1500: 36,
# 1550: 37,
# 1600: 38,
# 1650: 39,
# 1700: 40,
# 1750: 41,
# 1800: 42,
# 1850: 43
# }
def更改字体(事件):
font\u size=wh\u font\u map[下一步(wh\u font\u map中的k表示k,如果(master.winfo\u width()+master.winfo\u height())/2更改字体大小而不是布局,对吗?是的,这是我的目标。您想更改所有内容的字体大小,还是只更改某些小部件的字体大小?字体大小是原始目标,但我想看看如果我更改了所有内容会是什么样子