Ich möchte das Anwendungsprotokoll in der GUI in irgendeiner Weise anzeigen. Es wird zur Anmeldung als Handler bei init. < /P>
hinzugefügt, wenn ich den Text als Klartext in das Widget einfüge, druckt es fein. Die Linie ist in Ordnung. Dafür mache ich einfach < /p>
class QTextEditLogger(QTextEdit, logging.Handler):
def __init__(self, parent, level=NOTSET):
QTextEdit.__init__(self, parent)
logging.Handler.__init(self, level=level)
def emit(self, record):
msg = self.format(record)
self.append(msg)
< /code>
Wenn ich versuche, Rich.richHandler -Formatierung zu verwenden, um farbigen Text zu erhalten und dies als HTML in die QTExtedit einfügt, funktioniert die Farbe einwandfrei. Der Text ist jedoch nicht ordnungsgemäß verteilt/Aligned.
Wie können Sie. Die Konsole. < /p>
Hier ist das MRE, ich füge ein RichHandler als Mitglied meiner Klasse und ein Konsolenobjekt hinzu, das sich an os.devnull < /code> und aufzeichnet. Dann greife ich den Konsolentext über export_html ()
, was wiederum über INSERTHTML () zum textedit hinzugefügt wird. Ich habe sogar versucht, die Konsolengröße auf die Widget-Breite einzustellen, aber das hat nicht wirklich geholfen.
[url=viewtopic.php?t=14917]Ich möchte[/url] das Anwendungsprotokoll in der GUI in irgendeiner Weise anzeigen. Es wird zur Anmeldung als Handler bei init. < /P> hinzugefügt, wenn ich den Text als Klartext in das Widget einfüge, druckt es fein. Die Linie ist in Ordnung. Dafür mache ich einfach < /p> [code]class QTextEditLogger(QTextEdit, logging.Handler): def __init__(self, parent, level=NOTSET): QTextEdit.__init__(self, parent) logging.Handler.__init(self, level=level)
def emit(self, record): msg = self.format(record) self.append(msg) < /code> Wenn ich versuche, Rich.richHandler -Formatierung zu verwenden, um farbigen Text zu erhalten und dies als HTML in die QTExtedit einfügt, funktioniert die Farbe einwandfrei. Der Text ist jedoch nicht ordnungsgemäß verteilt/Aligned.
Wie können Sie. Die Konsole. < /p> Hier ist das MRE, ich füge ein RichHandler als Mitglied meiner Klasse und ein Konsolenobjekt hinzu, das sich an os.devnull < /code> und aufzeichnet. Dann greife ich den Konsolentext über export_html () [/code], was wiederum über INSERTHTML () zum textedit hinzugefügt wird. Ich habe sogar versucht, die Konsolengröße auf die Widget-Breite einzustellen, aber das hat nicht wirklich geholfen.[code]import sys import os from time import sleep import logging from logging import Handler, NOTSET from rich.logging import RichHandler from rich.console import Console from PySide6.QtWidgets import QTextEdit, QApplication, QMainWindow from PySide6.QtGui import QTextCursor, QTextOption
def showEvent(self, arg__1): self.console.width = self.width()//self.fontMetrics().averageCharWidth() # Approximate character width self.console.height = self.height()//self.fontMetrics().height() # Approximate character height return super().showEvent(arg__1)
def emit(self, record) -> None: """Override the emit method to handle log records."""
self.rich_handler.emit(record) html = self.console.export_html(clear=True, inline_styles=True) self.insertHtml(html) self.verticalScrollBar().setSliderPosition(self.verticalScrollBar().maximum()) c = self.textCursor() c.movePosition(QTextCursor.End) self.setTextCursor(c)
class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("QTextEdit Example")
# Create a QTextEdit widget self.text_edit = QTextEditLogger(self) self.setCentralWidget(self.text_edit)
if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() # Set up logging logger = logging.getLogger() logger.setLevel(logging.DEBUG) logger.addHandler(window.text_edit) logger.info("This is an info message.") sleep(.5) logger.warning("This is a warning message.") sleep(.5) for i in range(10): logger.debug(f"This is a debug message {i}.") logger.error("This is an error message.") sys.exit(app.exec_()) [/code]
Ich habe Visual Studio und eine Reihe von Abhängigkeiten in einem Orchestrator-Funktionsprojekt aktualisiert und plötzlich erhalte ich die Fehlermeldung CS0104:
ILogger ist eine mehrdeutige Referenz...
Ich habe gelernt, wie man PySide6 und Qt Designer verwendet, aber irgendwie kann ich meine .ui-Datei nicht in eine .py-Datei konvertieren. Der einzige Befehl, den ich gefunden habe, ist
pyside6-uic...
Ich habe eine qt C ++ - App, in der ich den Inhalt eines Qtextedit -Scheibens als einfacher Text speichern muss, wenn er einfacher Text enthält, und als HTML, wenn der Qtextedit einen reichen Text...
Beim Kopieren und Einfügen von einem Webbrowser in einen Textprozessor wird das HTML-Markup in Rich Text konvertiert und der Textprozessor versucht, das Markup in sein eigenes Format zu konvertieren....
Beim Kopieren und Einfügen von einem Webbrowser in einen Textprozessor wird das HTML-Markup in Rich Text konvertiert und der Textprozessor versucht, das Markup in sein eigenes Format zu konvertieren....