Задумал написать приложение, суть которого читать комп порт, парсить вывод и как то реагировать. Суть проблемы - интерфейс подвисает, намертво. {лишнее} .. Если кому не сложно объясните вкратце, что нужно для того, что бы реализовать такое без тормозов интерфейса. Я вроде в отдельном потоке делаю, но догадываюсь, что тут с сигналами что то нужно творить.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, serial
try:
    import thread
except ImportError:
    import _thread as thread
import time
from PyQt4 import QtCore, QtGui
from cooker import Ui_MainWindow
class StartQT4(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        # here we connect signals with our slots
        QtCore.QObject.connect(self.ui.btnRun,QtCore.SIGNAL("clicked()"), self.startRead)
    def startRead(self):
        thread.start_new_thread(self.file_dialog())
    def file_dialog(self):
        sys.stderr = sys.stdout
        ser = serial.Serial('/dev/ttyACM0', 19200)
        ser.write('V\r'.encode())
        a = ''
        while True:
          try:
            a = a + ser.readline().decode()
            self.ui.testedit.setText(a)
            time.sleep(2)
          except KeyboardInterrupt:
            ser.close()
            break
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = StartQT4()
    myapp.show()
    sys.exit(app.exec_())
Грузится окно MainWindow, с кнопкой btnRun и текстовым полем testedit.




