pysimplegui字体随窗口大小变化
来自:https://www.5axxw.com/questions/simple/dwj3z8
要使PySimpleGUI的字体随窗口大小变化,可以更改字体大小的选项(即“font”参数)为窗口大小的一部分。以下是一个示例,其中字体大小取决于窗口高度:
import PySimpleGUI as sg
from math import ceil
# 定义每个界面元素的样式
button_size = (10, 2)
font_size = 20
# 定义主窗口
layout = [[sg.Text('Hello world!', font=('Helvetica', font_size), key='-TEXT-')],
[sg.Button('Button', size=button_size)]]
window = sg.Window('Resizable Window', layout, resizable=True)
# 通过循环运行事件循环,以响应对窗口大小的更改
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Exit'):
break
else:
# 每当窗口大小更改时,重新计算字体大小
height = values['-WINDOW-'][1]
new_font_size = ceil(height / 10)
window['-TEXT-'].update(font=('Helvetica', new_font_size))
window.close()
在此示例中,我们首先定义了一个常量“font_size”,并在“layout”中使用它来设置文本元素的字体大小。然后,我们创建了一个可调整大小的窗口并循环运行事件循环。在事件循环中,我们检查窗口事件,如果用户关闭了窗口或单击了“退出”按钮,则退出循环;否则,我们分别检查窗口高度,并使用它来计算新的字体大小。最后,我们使用“update”方法将新字体大小应用于文本元素并重绘窗口。由于PySimpleGUI的“update”方法能够智能地处理部分更新和自动大小调整,因此我们无需手动计算和设置文本元素的位置和大小。
