日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python暂停和恢复_python – 暂停和恢复QThread

發布時間:2024/7/5 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。