【发布时间】:2016-09-13 14:31:23
【问题描述】:
我正在运行嵌入在 C++ 应用程序中的 Python。该程序由一个 Qt GUI 和一个用于计算的工作 QThread 组成。用户可以选择从文件运行 Python 脚本或启动 Python 提示符。两者都在 QThread 中运行。当 python 脚本完成或我们退出 python 提示时,程序退出。但是,我想处理用户请求退出 GUI 的情况。
如果运行 Python 脚本,我可以通过调用 PyErr_SetInterrupt(参见 Stopping embedded Python)来实现。 Python解释器停止,我们可以正常退出。但是,我还没有找到强制退出 Python 提示的好方法。
我尝试向stdin(使用ungetc)提供字符,希望Python 提示符接收它们但没有成功。我从一个重载的PyOS_InputHook 执行此操作,用于在 Python 提示符运行时捕获 Qt 事件。
任何想法如何正确强制 Python 提示退出?
【问题讨论】:
标签: python c++ python-c-api embedded-language