公司网站建设方案ppt,做教程网站如何查用户搜索,企业的外币收入外管局网站做啥,中国铁建一体化平台登录我正在尝试暂停QThread并恢复它.
所以,我在QThread中有一个RFID读取循环,我想在阅读器获得RFID代码时暂停无限循环.之后,有一个数据库检查.在检查结束时,我想恢复RFID阅读循环以获取其他代码.
MVCE#xff1a;
def main():
global Thread
app QtGui.QApplication(sys.argv)
m…我正在尝试暂停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, namerfid_event)
def run(self):
while 1:
ser serial.Serial(portSerial_Port, baudrateSerial_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, namerfid_event)
Pause True
def run(self):
while 1:
if Pause:
ser serial.Serial(portSerial_Port, baudrateSerial_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