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

如何在PySimpleGUI开发的GUI程序中通过按钮切换控制台显示状态

PySimpleGUI 控制台显隐切换实现方法

前置要求

  • 打包exe时不要勾选auto-py-to-exe的「关闭控制台」选项,否则控制台进程会被完全禁用,无法完成显隐切换

实现逻辑

直接调用Windows系统内置的kernel32和user32接口,获取当前程序绑定的控制台句柄,调用显示/隐藏接口切换状态即可,全程不需要重启程序。

完整可运行代码

import PySimpleGUI as sg
import ctypes

# 加载系统dll
kernel32 = ctypes.WinDLL('kernel32')
user32 = ctypes.WinDLL('user32')
# 获取当前程序对应的控制台窗口句柄,比获取前台窗口更稳定
console_hwnd = kernel32.GetConsoleWindow()
# 记录控制台当前显示状态,默认启动时为显示
is_console_show = True

# 界面布局,添加切换按钮,点击即可切换控制台显隐状态,和你提供的参考按钮功能一致
layout = [
    [sg.Button('显示/隐藏控制台', key='-TOGGLE_BTN-')]
]

window = sg.Window('控制台切换演示', layout)

while True:
    event, _ = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == '-TOGGLE_BTN-':
        is_console_show = not is_console_show
        # SW_HIDE = 0, SW_SHOW = 5
        user32.ShowWindow(console_hwnd, 5 if is_console_show else 0)

window.close()

补充说明

  • 该方案仅适配Windows系统,如果你需要跨Linux、macOS使用,需要单独适配对应系统的终端控制接口
  • 上述代码没有额外第三方依赖(除了你已经在用的PySimpleGUI),打包后可以直接运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:15:03