ฉันกำลังพยายามให้ปุ่มหมุนเธรดใหม่ที่ไม่ทำอะไรเลยนอกจากสลีปเป็นเวลา 30 วินาที อย่างไรก็ตาม เธรดหลักจะถูกบล็อกหากช่องเป็นฟังก์ชันแลมบ์ดา ไม่มีใครรู้ว่าเหตุใดจึงเป็นเช่นนี้และไม่ประพฤติตามที่ฉันคาดหวังไว้ นี่คือรหัสของฉัน:
# ...
def setup(self):
# ...
self.pushButton_TestConnection.clicked.connect(self.process)
def process(self):
self.worker_thread = QtCore.QThread()
self.worker = Worker()
self.worker.moveToThread(self.worker_thread)
self.worker_thread.started.connect(lambda: self.worker.sleep(30))
self.worker_thread.start()
class Worker(QtCore.QObject):
def sleep(self, secs):
time.sleep(secs)
มันทำงานได้ดีกับสิ่งต่อไปนี้
self.worker_thread.started.connect(self.worker.sleep)
self.worker_thread.start()
class Worker(QtCore.QObject):
def sleep(self):
time.sleep(30)
ขอบคุณ