Hi,
ich benutze QSyntaxHighlighter um den Text in meinem QTextEdit farbig zu unterlegen. Ich würde jetzt allerdings gerne diesen farbigen Text ins Clipboard kopieren. Wenn ich das aber über QTextEdit::copy() mache, habe ich nur plain Text ohne Formatierung. Gibt es eine einfache Möglichkeit, an dem formatierten Text zu kommen und diesen ins Clipboard zu schreiben?
QSyntaxHighlighter und farbigen Text ins Clipboard kopieren
-
Teetrinker
- Beiträge: 37
- Registriert: 21. Mai 2008 21:07
-
Teetrinker
- Beiträge: 37
- Registriert: 21. Mai 2008 21:07
-
Teetrinker
- Beiträge: 37
- Registriert: 21. Mai 2008 21:07
Okay, dann muss ich das Problem etwas genauer beschreiben. Ich möchte den Text nicht als HTML exportieren, weil dieser dann auch als HTML-Quelltext in z.B. OpenOffice eingefügt wird und nicht als formatierter Text. Und zudem fehlen auch in diesem HTML-Quelltext die Formatierungen (liegt an QSyntaxHighlighter).
Wenn ich Text in QTextEdit formatiere und mit QTextEdit::copy() kopiere, dann kann ich den Text (die Formatierungen bleiben erhalten!) überall per Paste farbig einfügen. Das Problem ist jedoch QSyntaxHighlighter. Die gemachten farblichen Veränderungen von QSyntaxHighlighter werden von QSyntaxHighlighter selber verwaltet und sind nicht über QTextEdit abrufbar, weswegen ein QTextEdit::toHtml() oder QTextEdit::copy() plain Text liefert.
Weiß jemand, wie ich dennoch an den farblich hervorgehobenen Text komme?
Wenn ich Text in QTextEdit formatiere und mit QTextEdit::copy() kopiere, dann kann ich den Text (die Formatierungen bleiben erhalten!) überall per Paste farbig einfügen. Das Problem ist jedoch QSyntaxHighlighter. Die gemachten farblichen Veränderungen von QSyntaxHighlighter werden von QSyntaxHighlighter selber verwaltet und sind nicht über QTextEdit abrufbar, weswegen ein QTextEdit::toHtml() oder QTextEdit::copy() plain Text liefert.
Weiß jemand, wie ich dennoch an den farblich hervorgehobenen Text komme?
-
Teetrinker
- Beiträge: 37
- Registriert: 21. Mai 2008 21:07
Ich habe es jetzt noch mal ausprobiert, Text in die QTextEdit eingegeben, der von QSyntaxHighlighter automatisch farblich formatiert wurde. Diesen dann via QTextEdit.toHtml() nach HTML exportiert und via QClipboard dann ins Clipboard und von dort manuell in eine Datei kopiert und diese mit dem Browser aufgerufen. Nach Aufruf des Dokuments sind die Formatierungen von QSyntaxHighlighter weg und man sieht nur schwarzen Text.
Hier in Qt Centre spricht jemand ein ähnliches Problem an, dass er die von QSyntaxHighlighter gemachten Änderungen nicht abrufen kann. Unter Linux kann ich das auf jeden Fall nachvollziehen, bei mir gehts auch nicht.
Wie auch immer, ich habe das Problem erst einmal so gelöst, dass ich den Text aus dem QTextEdit selber parse und in HTML mit den gewollten farblichen Änderungen umwandele. Danach wieder ins QTextEdit kopiere und dort via. QTextEdit.copy() ins Clipboard kopiere. Dadurch erhalte ich einen Text, den ich überall einfügen kann und seine Formatierungen behält.
Sehr unschön, aber anders klappt nicht.
Hier in Qt Centre spricht jemand ein ähnliches Problem an, dass er die von QSyntaxHighlighter gemachten Änderungen nicht abrufen kann. Unter Linux kann ich das auf jeden Fall nachvollziehen, bei mir gehts auch nicht.
Wie auch immer, ich habe das Problem erst einmal so gelöst, dass ich den Text aus dem QTextEdit selber parse und in HTML mit den gewollten farblichen Änderungen umwandele. Danach wieder ins QTextEdit kopiere und dort via. QTextEdit.copy() ins Clipboard kopiere. Dadurch erhalte ich einen Text, den ich überall einfügen kann und seine Formatierungen behält.
Sehr unschön, aber anders klappt nicht.