带可切换控制台的GUI程序?

时间:2013-01-30 19:37:17

标签: python console terminal pythonw

我看到一些应用程序允许您在需要阅读日志消息时显示/隐藏控制台。例如,Blender3D允许(blender.org)。

我想知道是否可以在Python中完成此操作。

我的主窗口是Panda3D(panda3d.org)窗口。 我已经读过一个地方,一个选项是隐藏“真正的”控制台(pythonw)并创建另一个控制台,只需将每个从“真实”控制台重定向到它,每次你想“显示”“真正的”控制台。不知道如何可以做到这一点。

或者至少是一种选择是通过控制台启动程序还是通过读取配置文件等来启动程序的方法。

1 个答案:

答案 0 :(得分:1)

我假设你在谈论Windows,因为在搅拌机中这个控制台切换是Windows独占的。我猜Blender在Windows上使用GetConsoleWindowShowWindow

这是你可以在python中使用pywin32

的方法
import win32gui, win32console, win32api, win32con
import time

console_window = win32console.GetConsoleWindow()
time.sleep(1)
win32gui.ShowWindow(console_window, win32con.SW_HIDE)
time.sleep(1)
win32gui.ShowWindow(console_window, win32con.SW_SHOW)
time.sleep(1)

如果你用python而不是pythonw运行这个程序,它将显示控制台,睡眠一秒钟,隐藏控制台,再睡一秒钟,然后再次隐藏它。

请注意,此代码仅适用于Windows。在其他平台上,这样的傻事是没有必要的,因为如果你想让程序显示一个控制台,那么你就可以从控制台运行它。