Saya mencoba menerapkan kode dari pertanyaan ini, tetapi Saya telah menemukan bahwa QTimer tidak menyala dalam keadaan tertentu.

Kode yang disederhanakan:

app = QApplication([])

view = QWebEngineView()
view.show()

def callback():
    sys.exit(0)

QTimer.singleShot(1000, callback)

app.exec()

Aplikasi berjalan selamanya dengan kode ini (mis. callback tidak pernah dieksekusi). Namun, jika Anda berkomentar view.show() maka komentar akan keluar setelah satu detik sebagaimana mestinya.

Sejauh yang saya tahu, masalah ini khusus untuk QWebEngineView; jika kita mengganti QWebEngineView dengan QWidget generik atau QLabel, maka itu berfungsi seperti yang diharapkan dan keluar setelah satu detik.

Apa penyebabnya, dan bagaimana cara memperbaikinya?

0
Dragon 11 Maret 2020, 04:43

1 menjawab

Jawaban Terbaik

Seperti yang diminta oleh @eyllanesc, saya menemukan bahwa ini adalah bug yang diperkenalkan oleh modul PyQtWebEngine rilis 5.14.0; versi sebelumnya (5.13.2) tidak menunjukkan perilaku ini.

0
Dragon 11 Maret 2020, 02:28