1

我正在使用 PyQt4 将凭据输入到域登录页面并从域中的其他几个页面中提取数据。从代码中提供登录或搜索凭据时,一切都按预期工作。当我打开 raw_input 以允许用户输入信息时,它会导致尝试下载其中一个网页时挂断。我无法提供有关页面本身的信息,因为它位于公司网络上,但简单地使用 raw_input 会导致 QWebpage 加载出现问题是没有意义的。

QNetworkManager 抛出预期的 3 或 4 个 .finished 信号中的 1 个,而 QWebpage 框架从不抛出 .loadfinished 信号,因此它只是挂起。

(我试图刷新标准输入以及 seek(0) 这给了我一个错误的文件描述符错误)。有没有人遇到过这样的问题?

4

1 回答 1

1

raw_input使用同步/阻塞 IO 而不给 Qt 机会在后台继续处理事件。Qt 并没有真正准备好以这种方式停止它的处理。理论上它应该在 raw_input 完成后恢复。但也许在此期间发生了超时或类似的事情。使用 Qt 时,您确实应该使用基于信号/事件的输入。

如果 GUI 交互没问题,您应该尝试 QInputDialog::getText,因为它看起来像是来自外部的阻塞调用,但在内部让 Qt 继续处理后台作业。

于 2015-06-18T21:56:25.357 回答