zu viele Leerzeilen
-
moin,
ich habe folgendes Problem in Python 3.12 im Zusammenspiel mit PyQt6.6 unter Windows:
Ein Programm arbeitet mehrere Abfragen und gibt die Ausgaben über die print() Funktion
aus.
Die Ausgaben werden über stdout abgefangen und mit nachfolgender Funktion über QTextBrowser
in ein Window ausgegebendef append_output(self): while not self.queue.empty(): output = self.queue.get() self.queuetofile(output) if output: cleaned_output = output.rstrip() self.ui.textBrowser.append(cleaned_output) if self.worker_thread and self.worker_thread.is_alive(): QTimer.singleShot(100, self.append_output)
- funktioniert auch alles bis auf eine Sache
Ausgabe von output in die Datei über den Befehl self.queuetofile(output)
texttexttexttext texttexttexttext texttexttexttext ------------------------------ __Versionscheck__ ------------------------------ texttexttexttext texttexttexttext texttexttexttext ------------------ __ Sprache __ ------------------ texttexttexttext
- FERTIG -
Ausgabe von output auf die screen über QTextBrowser:
texttexttexttext texttexttexttext texttexttexttext ------------------------------ __Versionscheck__ ------------------------------ texttexttexttext texttexttexttext texttexttexttext ------------------ __ Sprache __ ------------------ texttexttexttext - FERTIG -
Mein Problem: wo kommen die Leerzeilen her und wie können die verhindert werden???
-
@docjc said in zu viele Leerzeilen:
self.ui.textBrowser.append(cleaned_output)
https://doc.qt.io/qt-6/qtextedit.html#append
Appends a new paragraph with text to the end of the text edit.
"Paragraph" => "Absatz"
Vielleicht versuchen void QTextEdit::insertPlainText(const QString &text) ?
-
@JonB said in zu viele Leerzeilen:
self.ui.textBrowser.append(cleaned_output)
Appends a new paragraph with text to the end of the text edit.
"Paragraph" => "Absatz"
@docjc Wie @JonB über die
append(...)
Funktion sagt, ein Absatz ist ein größerer Zeichenabstand inQTextBrowser
als z.B.\n
.
Eine Möglichkeit wäre den gesamten Absatz (= Textblock) zu konstruieren, Zeilen mit newline\n
zu trennen und dann am Ende nur einen "Absatz" zum TextBrower hinzuzufügen. -
@Pl45m4 Dank schon mal für die Antwort, ich hab noch vergessen hinzuzufügen, dass unter Tkinter alles richt verarbeitet wird.
Die Idee alles in einen Textblock zu schreiben, damit hab ich angefangen, da aber die Bearbeitung der Aufgaben teilweise viel Zeit benötigt, wäre die Ausgabe lange Zeit tot und es ist nicht zu erkennen, ob die Prozesse noch laufen. Eigentlich wollte ich von Tkinter weg, sieht hat altbacken aus. Den Vorschlag 1 werde ich mir noch mal genauer ansehen. -