【问题标题】:How to toggle the console with a button in a GUI program如何在 GUI 程序中使用按钮切换控制台
【发布时间】:2021-10-20 17:33:43
【问题描述】:

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

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

按钮:

【问题讨论】:

  • 您想打开/关闭新的控制台吗?或者当您启动 .py 时启动的那个?
  • 我可以指定我将程序压缩为exe,控制台自动开启。
  • 你想切换它吗?或者干脆摆脱它
  • 为什么你的 GUI 程序还有控制台?也许您将其转换为 .exe 错误。
  • 我也可以指定,是的,我想切换它。我知道您可以在将 .py 转换为 .exe 时完全关闭控制台

标签: python python-3.x console pysimplegui


【解决方案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()

【讨论】:

  • 谢谢!尽管如此,我并不认为我的所有库都可以在不同的操作系统上运行,如果能找到一种在每个操作系统上运行的方法,我会很高兴。
  • 对 Linux 和 MacOS 一无所知,仅此而已。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
相关资源
最近更新 更多