如何在 GUI 程序中使用按钮切换控制台

How to toggle the console with a button in a GUI program

当我 运行 我的程序(.exe 文件)时,控制台会自动打开。 我不想摆脱它,但我想有隐藏它的能力。 我知道我可以在使用 auto-py-to-exe 模块将 .py 转换为 .exe 时完全摆脱控制台。

有没有一种方法可以通过按钮打开和关闭控制台,而无需关闭程序或类似的东西? 如果有任何变化,我正在为 gui 使用 PySimpleGui 库。

按钮:

尝试将 pywin32 库用于 hide/show 控制台,它仅适用于 WINDOWS。

import win32gui, win32con
import PySimpleGUI as sg

console = win32gui.GetForegroundWindow()

sg.theme("DarkBlue3")
sg.set_options(font=("Courier New", 12))

layout = [[sg.Button( "Console ON/OFF", key="-CONSOLE-")]]
window = sg.Window('Title', layout, finalize=True)

view_console = True
while True:

    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    elif event == "-CONSOLE-":
        view_console = not view_console
        option = win32con.SW_SHOW if view_console else win32con.SW_HIDE
        win32gui.ShowWindow(console, option)

window.close()