Seite 1 von 1
QTextEdit: Auswahl überschreibt Text Style
Verfasst: Freitag 6. Januar 2023, 18:58
von Fire Spike
Hallo Leute
In meiner PySide6 GUI verwende ich ein QTextEdit.
Der Text wird mit verschiedenen Vorder- und Hintergrundfarben angezeigt.
Wenn ich jedoch den Text markiere, wird der markierte Text vollständig schwarz-blau angezeigt.
Ich möchte aber, dass sich die Auswahl nur über den Text drüberlegt, wie man das von Word kennt.
Wie kann ich das anstellen?
Re: QTextEdit: Auswahl überschreibt Text Style
Verfasst: Montag 9. Januar 2023, 10:21
von Kebap
Hallo Fire Spike,
kannst du ein Beispiel zeigen, der genau das beschriebene Verhalten demonstriert?
Vermutlich musst du Vorher- und Hintergrundfarbe unterschiedlich wählen, sonst siehst du einen "einfarbigen Block".
Re: QTextEdit: Auswahl überschreibt Text Style
Verfasst: Mittwoch 11. Januar 2023, 13:44
von Fire Spike
Code: Alles auswählen
from PySide6.QtWidgets import QApplication, QMainWindow, QTextEdit
from PySide6.QtCore import QRect
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.text_entry = QTextEdit(self)
self.text_entry.setGeometry(QRect(0, 0, 917, 670))
self.text_entry.setHtml("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\np, li { white-space: pre-wrap; }\nhr { height: 1px; border-width: 0; }\nli.unchecked::marker { content: \"\\2610\"; }\nli.checked::marker { content: \"\\2612\"; }\n</style></head><body style=\" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;\">\n<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:'MS Sans Serif'; color:#ffffff; background-color:#000000;\">I'm black</span></p>\n<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:'MS Sans Serif';\">I'm white</span></p>\n<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:'MS Sans Serif'; color:#6cdfff; background-color:#ff8649;\">I'm colorful</span></p></body></html>")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
Hier das Beispiel
Re: QTextEdit: Auswahl überschreibt Text Style
Verfasst: Mittwoch 11. Januar 2023, 14:07
von __deets__
Du meinst eher unterlegt, nicht drueberlegt, so als ob das mit Textmarker gemacht wuerde? Ich vermute, das geht nicht. Ich finde jedenfalls nur selection-background-color und Co, und die kennen keine wie von dir hier letztlich geforderte dynamische Veraenderung der Vordergrundfarbe, weil sonst zB gelber Grund mit weisser Schrift nicht geht.
Re: QTextEdit: Auswahl überschreibt Text Style
Verfasst: Mittwoch 11. Januar 2023, 14:39
von Kebap
In Word ist es so:
Ich habe 5 Worte mit 5 verschiedenen Schriftfarben auf weißem Grund.
Wenn ich alles markiere, ändert sich die Hintergrundfarbe von weiß zu hellgrau.
Es ändert sich aber nicht die Schriftfarbe. Das bleiben die 5 verschiedenen Farben.
Stimmt nicht ganz, weil sich die Farben auch (ein bisschen) abdunkeln, aber so ungefähr.
Also wenn man vorher weiße Schrift auf weißem Grund hat, erhält man genau so unsichtbare hellgraue Schrift in der Auswahl.