Jak wyświetlić tekst w QTextEdit z wątku?

0

Mam taki program:

import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import QThread

def check():
	window.TE.setText('bla-bla')

class Checker(QtGui.QWidget):
    def __init__(self):
        super(Checker, self).__init__()

        self.TE = QtGui.QTextEdit()
        self.TE.setReadOnly(False)

        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(self.TE)
        self.setLayout(vbox)
        
        self.Thread1 = Get_CHECK()
        self.Thread1.daemon = True
        self.Thread1.start()

###############################################################

class Get_CHECK(QThread):
    def __init__(self):
        QThread.__init__(self)

    def __del__(self):
        self.wait()

    def run(self):
        check()

##################################################################################################

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = Checker()
    window.show()

    sys.exit(app.exec_())

Próba wyświetlenia teksu w textEdit powoduje błąd. Jak prawidłowo to zrobić?

0

Pewnie już znalazłeś odpowiedź, ale lepiej byłoby to rozdzielić :)

Używanie wątków w PyQT wg SO

Ogólnie powinieneś zrobić osobną klasę Worker, która rozszerza QObject, a dopiero potem ten obiekt przenieść do wątku roboczego z movetothread.

A potem połączyć, takiego Workera za pomocą sygnałów i slotów z wątkiem głównym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1