如何在 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()
当我 运行 我的程序(.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()