You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SimpleGui禁用Output组件的用户输入功能?

解决PySimpleGUI中Output元素禁用输入的问题

PySimpleGUI的sg.Output本身没有直接生效的readonly参数,你需要通过操作其底层的tkinter组件来实现禁用输入:

实现步骤

  1. 窗口创建完成后,通过window['OUTPUT'].Widget获取sg.Output对应的tkinter Text对象
  2. 调用该对象的config(state='disabled')方法,即可禁用输入
  3. 若需要向Output中写入内容,需临时将状态切换为normal,写入完成后再切回disabled(因为禁用状态下无法写入内容)

示例代码

import PySimpleGUI as sg

# 构建布局
layout = [
    [sg.Output(size=(20, 5), key='OUTPUT', font=('Signore', 14), background_color='#000000', text_color='white')],
    [sg.Button('写入内容'), sg.Button('退出')]
]

window = sg.Window('禁用Output输入示例', layout)

# 获取Output底层组件并设置禁用
output_widget = window['OUTPUT'].Widget
output_widget.config(state='disabled')

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == '退出':
        break
    if event == '写入内容':
        # 临时启用状态以写入内容
        output_widget.config(state='normal')
        print('测试写入的内容')
        # 再次禁用输入
        output_widget.config(state='disabled')

window.close()

关键说明

  • sg.Output基于tkinter的Text组件实现,必须通过其Widget属性才能访问底层配置
  • 若仅需静态展示内容,无需动态写入,初始化后直接设置state='disabled'即可

内容的提问来源于stack exchange,提问作者Jesus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 20:14:58