python暂停和恢复_python – 暂停和恢复QThread
我正在嘗試暫停QThread并恢復它.
所以,我在QThread中有一個RFID讀取循環,我想在閱讀器獲得RFID代碼時暫停無限循環.之后,有一個數據庫檢查.在檢查結束時,我想恢復RFID閱讀循環以獲取其他代碼.
MVCE:
def main():
global Thread
app = QtGui.QApplication(sys.argv)
main = Main()
Thread = RFID_Thread()
Thread.rfid_event.connect(Main().on_event)
Thread.start()
sys.exit(app.exec_())
class Main(object):
def __init__(self):
self.accueil = MainWindow(self)
self.access = AccessWindow()
self.accueil.show()
def on_event(self, data):
# I WANT TO PAUSE THE QTHREAD HERE
###################################
# CHECKING DB & SHOWING UI #
###################################
# AND RESUME IT HERE
class RFID_Thread(QtCore.QThread):
rfid_event = pyqtSignal(str, name='rfid_event')
def run(self):
while 1:
ser = serial.Serial(port=Serial_Port, baudrate=Serial_Baudrate)
a = ser.read(19).encode('hex')
ser.close()
if len(a) <> 0:
Code = a[14:]
self.rfid_event.emit(Code)
time.sleep(2)
if __name__=='__main__':
main()
代碼無法再現,因為您需要RFID閱讀器,但我們可以通過這兩行來模擬他,而不是打開串口并從中讀取數據:
a = "**************e20030654408021520403f4b"
time.sleep(4)
我試圖使用狀態變量,但它不起作用.
解決方法:
最后我自己解決了這個問題
MVCE:
def main():
global Thread
app = QtGui.QApplication(sys.argv)
main = Main()
Thread = RFID_Thread()
Thread.rfid_event.connect(Main().on_event)
Thread.start()
sys.exit(app.exec_())
class Main(object):
def __init__(self):
self.accueil = MainWindow(self)
self.access = AccessWindow()
self.accueil.show()
def on_event(self, data):
# I WANT TO PAUSE THE QTHREAD HERE
Thread.Pause = False
###################################
# CHECKING DB & SHOWING UI #
###################################
# AND RESUME IT HERE
Thread.Pause = True
class RFID_Thread(QtCore.QThread):
rfid_event = pyqtSignal(str, name='rfid_event')
Pause = True
def run(self):
while 1:
if Pause:
ser = serial.Serial(port=Serial_Port, baudrate=Serial_Baudrate)
a = ser.read(19).encode('hex')
ser.close()
if len(a) <> 0:
Code = a[14:]
self.rfid_event.emit(Code)
time.sleep(2)
else:
continue
if __name__=='__main__':
main()
最后,狀態變量是解決方案!!
標簽:python,pyqt,pyqt4,qthread
來源: https://codeday.me/bug/20190702/1360083.html
總結
以上是生活随笔為你收集整理的python暂停和恢复_python – 暂停和恢复QThread的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python拆分合并文件_Python
- 下一篇: mysql分页插件springboot_