PySimpleGUI如何不使用sg.Output()在窗口中显示文本结果
实现方案
你可以提前在布局中预留带唯一key标识的sg.Text组件作为结果展示位,触发提交事件后调用该组件的update方法更新内容即可,不需要使用sg.Output组件,还可以自定义文本样式。
完整修改代码
import PySimpleGUI as sg layout = [ [sg.Text("Name: "), sg.Input()], [sg.Ok()], # 预留结果展示位,可自定义字体、颜色等样式 [sg.Text("", key="-RESULT-", font=("微软雅黑", 12), text_color="navy")] ] window = sg.Window("Just a window", layout) while True: events, values = window.read() # 处理窗口关闭逻辑,避免运行报错 if events == sg.WIN_CLOSED: break if events == "Ok": name = values[0] # 定位到预留文本组件,更新展示内容 window["-RESULT-"].update(f"输入的姓名为:{name}") window.close()
补充说明
- key是PySimpleGUI定位组件的核心标识,建议用特殊格式命名(比如前后加短横线)避免重复冲突
- 若需要多次更新展示内容,重复调用
update方法即可自动覆盖旧内容 - 可以根据需求调整
sg.Text的font、text_color、background_color等参数,自定义外观的灵活度远高于sg.Output
内容的提问来源于stack exchange,提问作者lucasestevam
相关产品推荐
相关产品推荐

