使 ghost.py 的 QWebView 对用户操作做出反应(附加事件循环线程?)

Make ghost.py's QWebView react to user actions (attach an event loop thread?)

我正在 IPython 交互式控制台中的 ghost.py 打开网页并显示其 window 以查看我的操作的效果:

import ghost
s=ghost.Ghost().start()
s.open('https://google.com')
s.show()

window 显示了页面的内容,但如果我尝试这样做,则不会执行任何操作,例如拖动它或调整它的大小,或使用它的滚动条,它的标题会附加“(无响应)”。看起来 window 的事件循环不是 运行ning。

因为我在交互式控制台中工作,所以我需要事件循环到 运行,并在后台线程或其他东西中执行此操作。我该怎么做?

运行 %gui qt IPython 魔术命令在调用 ghost.Ghost().start() 之前就可以了。

根据 IPython/terminal/pt_inputhooks/qt.py 判断,它会创建一个全局 Qt 偶数循环并在控制台空闲或其他情况下发送事件。