Alternatif kepada time.sleep untuk Aplikasi PyQt
Melambatkan pelaksanaan dalam aplikasi PyQt boleh menjadi rumit, kerana menggunakan time.sleep boleh membekukan GUI benang. Artikel ini meneroka penyelesaian alternatif yang mengekalkan responsif GUI.
Tinjauan Keseluruhan Masalah
Pengarang menghadapi isu di mana penggunaan time.sleep dalam aplikasi PyQt membekukan GUI manakala kelewatan berkuat kuasa, menyebabkan aplikasi tidak bertindak balas. Mereka mencari penyelesaian yang membolehkan pelaksanaan diteruskan tanpa membekukan GUI.
Pendekatan QTimer
Pada mulanya, penulis mempertimbangkan untuk menggunakan QTimer sebagai penyelesaian. Walau bagaimanapun, mereka menyedari bahawa QTimer memerlukan pemautan kepada fungsi yang berasingan, dan bukannya menjeda pelaksanaan semasa.
Penyelesaian Alternatif Menggunakan QTest
Untuk mengatasi had ini, penulis mencadangkan pendekatan alternatif menggunakan modul QtTest PyQt4. Penyelesaian ini menggunakan kaedah QTest.qWait(msecs), yang berkelakuan serupa dengan time.sleep tetapi membenarkan GUI kekal responsif semasa kelewatan.
Contoh Penggunaan
Contoh kod berikut menunjukkan cara menggunakan QTest.qWait(msecs) kaedah:
from PyQt4 import QtTest QtTest.QTest.qWait(2000) # Delay for 2000 milliseconds (2 seconds)
Dengan menggunakan kaedah ini, GUI akan kekal responsif semasa kelewatan berkuat kuasa, tidak seperti time.sleep.
Atas ialah kandungan terperinci Bagaimana untuk Menangguhkan Pelaksanaan dalam Aplikasi PyQt Tanpa Membekukan GUI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!