#python #python-3.x #console #pysimplegui
Вопрос:
Когда я запускаю свою программу (файл.exe), консоль автоматически включается. Я не хочу избавляться от этого, но я хочу иметь возможность скрывать это. Я знаю, что могу полностью избавиться от консоли, закрывая файл .py в .exe с помощью модуля auto-py-to-exe.
Есть ли способ включать и выключать консоль с помощью кнопки, не закрывая программу или что-то в этом роде? Я использую библиотеку PySimpleGui для графического интерфейса, если это что-то изменит.
Кнопка:
Комментарии:
1. вы хотите включить/выключить новую консоль? Или тот, который запускается, когда вы запускаете a
.py
?2. Я мог бы указать, что я сжал программу в exe, и консоль автоматически включается.
3. и вы хотите переключить его? или просто избавиться от него
4. Почему в вашей графической программе вообще есть консоль? Возможно, вы неправильно преобразовали его в файл .exe.
5. Я мог бы также указать это, да, я хочу переключить его. Я знаю, что вы можете полностью отключить консоль во время преобразования .py в .exe
Ответ №1:
Попробуйте использовать библиотеку pywin32 для скрытия/отображения консоли, и она работает только для 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()
Комментарии:
1. Спасибо! Хотя я не думаю, что со всеми моими библиотеками моя программа будет работать в разных операционных системах, было бы неплохо найти способ сделать это в каждой операционной системе.
2. Ничего не знаю о Linux и macOS, вот и все.