如何让cmd命令行持续打印日志?点击终端后停止输出如何解决?
问题解答
根因分析
这个现象和你的PyQt代码逻辑完全无关,是Windows终端(CMD/PowerShell)的默认特性导致:
- Windows终端默认开启快速编辑模式,鼠标点击终端窗口时会自动进入文本选择状态,此时终端会暂停标准输出、标准错误流的写入缓冲,所有正在往终端打印内容的程序都会被临时阻塞挂起
- 按下回车、ESC键或者右键终端窗口会退出文本选择状态,之前阻塞的输出会一次性打印,程序也恢复正常运行
验证方法
你可以运行下面这段不含PyQt的测试代码复现相同现象,排除PyQt本身的问题:
import time import logging logging.basicConfig(level=logging.DEBUG) while True: logging.info("abc") time.sleep(1)
解决办法
如果要避免误触鼠标导致程序卡住,可以手动关闭终端的快速编辑模式:
- 打开CMD/PowerShell窗口,右键顶部标题栏,选择「属性」
- 切换到「选项」标签页,取消勾选「编辑选项」分类下的「快速编辑模式」
- 点击「确定」保存配置即可,后续点击终端窗口不会再触发选择阻塞逻辑
内容的提问来源于stack exchange,提问作者jett chen
相关产品推荐
相关产品推荐

