PySimpleGUI:更新Multiline字体时窗口及控件异常变大的问题求助
解决PySimpleGUI Multiline字体放大后控件/窗口异常变大的问题
核心解决方案
要维持控件和窗口原尺寸仅放大文本,需从固定控件尺寸、正确设置字体参数两个方面入手:
创建Multiline时固定尺寸并禁用文本自动调整
初始化Multiline控件时,必须指定size参数(格式为(宽度字符数, 高度行数)),同时设置autosize_text=False,避免控件因字体变化自动扩展。使用正确的font参数格式
font参数需遵循(字体名称, 字号)的格式,而非你之前错误的(10,10)(第一个值应为字体名,如'Arial'或'微软雅黑',第二个为字号)。
完整代码示例
import PySimpleGUI as sg # 初始化布局,固定Multiline尺寸并禁用自动调整 layout = [ [sg.Multiline('初始展示文本', key='result', size=(40, 10), autosize_text=False)], [sg.Button('切换为大字体')] ] # 创建窗口并禁用窗口拉伸 window = sg.Window('固定尺寸测试', layout, resizable=False) while True: event, values = window.read() if event == sg.WIN_CLOSED: break if event == '切换为大字体': # 正确更新字体和文本颜色,控件尺寸保持不变 window['result'].update( 'some text', text_color='red', font=('微软雅黑', 14) # 字体名+字号的正确格式 ) window.close()
关键说明
size=(40,10):将Multiline控件固定为可显示40个字符宽度、10行高度的尺寸autosize_text=False:强制控件忽略文本内容/字体变化,保持设定尺寸resizable=False:禁止窗口被手动拉伸,维持窗口原尺寸- 错误的
font=(10,10)会导致控件解析参数异常,进而触发尺寸失控,务必使用标准格式
内容的提问来源于stack exchange,提问作者skyline
相关产品推荐
相关产品推荐

