2

こんにちは皆さん、私は以下でお話しするほぼすべてのテクノロジーの初心者です。QApplicationwith を起動していますsys.exit(qapp.exec_())(Python クラスで を使用しているため必要ですQWebView)。アプリケーションが行うことを除いて、すべて問題ありません。実行後に独自に終了せず、REST Django Webサービスを介してこのQapplicationを呼び出すと問題が発生します(サーバーはロードを終了しません)。そのための解決策があるかどうか疑問に思っていました、ありがとう、考えていましたアプリの起動後にpythonでSIGTSTP(ctrl + z)を実行するのは、これは実用的な解決策ですか?

ここにコードの一部があります

def main():
    import sys
    qApp = QtGui.QApplication(sys.argv)

    myappWebView = myappWebView()
    myappWebView.load('http://website.com')
    myappWebView.show()
    sys.exit(qApp.exec_())

if __name__ == "__main__":
    main()

これを実行するたびにウィンドウが起動され、Linux コンソールは新しいコマンドのプロンプトを表示せず、ウィンドウを手動で閉じるまで動かなくなります。

4

2 に答える 2

2

QCoreApplication.exit()コードを見ないと答えにくいですが、仕事が終わったら電話していただけると思います。

于 2012-04-07T15:37:33.320 に答える
0

ページの読み込みが完了したら、アプリケーションを終了できます。

myappWebView.loadFinished.connect(qApp.quit)

または、実行に時間がかかる JavaScript がページに含まれている場合は、タイマーを使用してアプリケーションの終了を遅らせることができます。

timer = QTimer()
timer.setInterval(2000) # 2 seconds
myappWebView.loadFinished.connect(timer.start)
timer.timeout.connect(qApp.quit)

(または、より複雑でおそらくより正確な方法を選択することもできます: QtWebKit を使用しているときに Web ページがいつ読み込まれるかを知るには? )。

于 2012-04-08T03:12:10.503 に答える