0
我開發了一個多線程的gui,可以在單獨的線程中讀取串行數據。一般來說,我對線程,pyqt,python都很陌生。我用這個網站作爲參考,以獲得這個遠,它的工作正常,但研究如何添加第二個線程,我發現了一些文章和帖子,你不應該子類線程。我將如何將其轉換爲「正確」的方法?正確使用Qthread子類化工作,更好的方法?
class AThread(QtCore.QThread):
updated = QtCore.pyqtSignal(str)
query = QtCore.pyqtSignal(str)
def __init__(self):
QtCore.QThread.__init__(self)
def run(self):
try:
while True:
if ser.in_waiting:
line=ser.readline()[:-2]#remove end of line \r\n
self.updated.emit(line.decode('utf-8'))
if main_window.keywordCheckBox.isChecked():
if main_window.keywordInput.text() in line.decode('utf-8'):
self.query.emit("Match!")
self.query.emit(line.decode('utf-8'))
except serial.serialutil.SerialException:
pass
class MyMainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
self.thread= AThread()
self.thread.updated.connect(self.updateText)
self.thread.query.connect(self.matchFound)
此引用和代碼幫助了我極大。我現在更瞭解它。 – kaminsknator