1

PyQt4 を使用して資格情報をドメイン ログイン ページに入力し、ドメイン内のいくつかの追加ページからデータを取得しています。コード内からログイン資格情報または検索資格情報を提供すると、すべてが期待どおりに機能します。ユーザーが情報を入力できるように raw_input を開くと、Web ページの 1 つをダウンロードしようとしてハングアップします。企業ネットワーク上にあるため、ページ自体に関する情報を提供することはできませんが、単純に raw_input を使用すると QWebpage の読み込みに問題が発生するということは意味がありません。

QNetworkManager は、予想される 3 つまたは 4 つの .finished シグナルのうちの 1 つをスローし、QWebpage フレームは .loadfinished シグナルを決してスローしないため、ハングするだけです。

(stdin と seek(0) をフラッシュしようとしましたが、ファイル記述子エラーが発生します)。誰もそのような問題に遭遇したことがありますか?

4

1 に答える 1

1

raw_inputバックグラウンドでイベントを処理し続ける機会を Qt に与えることなく、同期/ブロッキング IO を使用します。Qt は、この方法で処理を停止する準備ができていません。理論的には、raw_input が終了したら再開する必要があります。しかし、その間にタイムアウトが発生したか、そのようなことが発生した可能性があります。Qt を使用する場合は、シグナル/イベント ベースの入力を使用する必要があります。

GUI インタラクションが問題ない場合は、QInputDialog::getText を試す必要があります。これは、外部からの呼び出しをブロックしているように見えますが、内部では Qt がバックグラウンド ジョブの処理を続行できるようにするためです。

于 2015-06-18T21:56:25.357 に答える