Wie dynamisch aktualisieren QTextEdit
also ich habe ein QTextEdit innerhalb einer Haupt-Fenster in meiner GUI. Ich möchte live-update wird der text in dieser durch ziehen aus einer Remote-Aktualisierung der Liste. Ich weiß nicht, wie unendlich überprüfen Sie diese Liste, ohne entweder a) machen Sie eine unendliche Schleife oder b) thread.
a) Abstürze der GUI, es ist eine Endlosschleife
b) erzeugt eine Fehlermeldung angezeigt:
QObject: Cannot create children for a parent that is in a different thread.
Die ich verstehe.
Was könnte ich tun, um dieses Problem beheben?
Warum nicht über Signale und Slots, die für dynamische updates von der GUI?
möglich, Duplikat der Vorstellen, einen text in ein Eingabefeld-von PyQt aus einem thread
Siehe auch stackoverflow.com/questions/21071448/... (nicht ein Duplikat dieses eine, ist aber sehr relevant)
Während ich Schätze Ihre Kommentare, ich glaube nicht, dass entweder diese angemessen sind. In dem ersten link, den du gepostet der OP, wie ich, die mit python-threads nicht Qthreads wie Sie bemerkt. Der zweite link, auf deine Antwort, auch um Qthreads. Auch, weder von diesen haben erwähnt, dass dynamische updates (live-Aktualisierung während der Laufzeit). Vielleicht könnten Sie klären Ihre mögliche Lösung für mein problem, anstatt die Bereitstellung von links mit unklarer Richtung.
Ja, aber Sie sollten nicht aufrufen, QTextEdit Methoden aus dem thread, riskiert den Absturz des Programms. Also müssen Sie überprüfen und senden ein weiteres signal für das clearing es.
möglich, Duplikat der Vorstellen, einen text in ein Eingabefeld-von PyQt aus einem thread
Siehe auch stackoverflow.com/questions/21071448/... (nicht ein Duplikat dieses eine, ist aber sehr relevant)
Während ich Schätze Ihre Kommentare, ich glaube nicht, dass entweder diese angemessen sind. In dem ersten link, den du gepostet der OP, wie ich, die mit python-threads nicht Qthreads wie Sie bemerkt. Der zweite link, auf deine Antwort, auch um Qthreads. Auch, weder von diesen haben erwähnt, dass dynamische updates (live-Aktualisierung während der Laufzeit). Vielleicht könnten Sie klären Ihre mögliche Lösung für mein problem, anstatt die Bereitstellung von links mit unklarer Richtung.
Ja, aber Sie sollten nicht aufrufen, QTextEdit Methoden aus dem thread, riskiert den Absturz des Programms. Also müssen Sie überprüfen und senden ein weiteres signal für das clearing es.
InformationsquelleAutor sudobangbang | 2014-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
dies ist, wie es arbeitet ohne threads 🙂
1) Erstellen pyqt textEditor logView:
2)fügen Sie pyqt texteditor, layout -:
3) die magic-Funktion ist:
Aufruf der obigen Funktion in die Schleife oder pass verkettet resultierende Zeichenfolge direkt in oben genannten Funktion wie folgt:
Danke für die Antwort. QtGui.QApplication.processEvents() mein problem gelöst.
InformationsquelleAutor hemraj
Gehen für
QThread
schließlich bewegen Sie Ihren code aus einem python-thread zuQThread
sollte nicht zu schwierig sein.Über die Signale & slots ist imho die einzige "saubere" Lösung für dieses. Das ist, wie
Qt
Werke und Dinge sind einfacher, wenn Sie anpassen.Ein einfaches Beispiel:
InformationsquelleAutor sebastian