【发布时间】:2013-01-30 19:37:17
【问题描述】:
我见过一些应用程序允许您在需要阅读日志消息时显示/隐藏控制台。例如 Blender3D 允许这样做 (blender.org)。
我想知道这是否可以在 Python 中完成以及如何完成。
我的主窗口是 Panda3D (panda3d.org) 窗口。 我在某处读到一个选项是隐藏“真实”控制台(pythonw)并创建另一个控制台,并且每次您想“显示”“真实”控制台时将所有内容从“真实”控制台重定向到它。不知道如何做到这一点。
或者至少是一种通过读取配置文件或其他方式来选择是否使用控制台启动程序。
【问题讨论】:
-
我不确定我是否理解您的第三段。您可以轻松地创建一个只有滚动条和文本区域的类似控制台的窗口,并且您可以,例如将
sys.stdout重定向到附加到该窗口的某个对象,并随时隐藏和显示该窗口。那是你要找的吗?如果是这样,您需要帮助的哪一部分? -
我想要的“控制台式”窗口或控制台窗口?说起来很简单,让我看看代码有多简单?
-
我故意说一个“类似控制台的窗口”。如果您需要它成为一个实际的控制台窗口,那么创建第二个您可以隐藏和显示的窗口并不比隐藏和显示您开始使用的那个更简单(除非您需要 Win9x 兼容性……您不需要),所以没有理由创建第二个。那么,它真的必须是一个控制台窗口,还是一个看起来和行为都像控制台窗口的普通 GUI 窗口就足够了?
-
如果您确实需要它是一个实际的控制台窗口,请记住,一个进程一次只能有一个控制台。 (当然,您可以使用不同的控制台创建一个子进程。或者释放您的原始控制台并分配一个新控制台。当您在 cmd.exe 或其他进程共享下的 python.exe 中运行时,这会很有帮助同一个控制台,但我看不出它对你有什么帮助。)
标签: python console terminal pythonw