QTextEdit bestimmte Wörter farbig hervorheben

Alles rund um die Programmierung mit Qt
Nightblizard
Beiträge: 39
Registriert: 7. Oktober 2009 20:32

QTextEdit bestimmte Wörter farbig hervorheben

Beitrag von Nightblizard »

Hi,
ist es möglich (und wenn ja wie) bestimmte Wörter im QTextEdit-Feld farbig hervor zu heben, wie es z.B. jeder guter Compiler tut?

Das ganze muss natürlich dynamisch funktionieren, sprich, wenn das Wort fertig geschrieben wurde und nicht alle 10 Sekunden :)


Dankend,
Night
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

Beitrag von stippy »

ich denke Du suchst QSyntaxHighlighter
Nightblizard
Beiträge: 39
Registriert: 7. Oktober 2009 20:32

Beitrag von Nightblizard »

Ah, das ist schonmal sehr hilfreich, danke!
Jetzt weiss ich aber gerade nicht wie ich die highlight Funktion beim Eingeben aufrufen kann.

Könnte mir dazu noch jemand ein Beispiel geben? Dann wäre ich auch fürs erste bedient :D


Edit:
Das Signal "TextChanged" schaut gut aus, doch wie kann ich beim aufrufen dieses Signals eine Funktion starten?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schon mal in die Doku von QSyntaxHighlighter geschaut?
Nightblizard
Beiträge: 39
Registriert: 7. Oktober 2009 20:32

Beitrag von Nightblizard »

Wenn du den Link meinst, den stippy gepostet hat, dann schon. Andernfalls, wäre es nett von dir, wenn du mir den entsprechenden Link geben könntest.
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

Code: Alles auswählen

This function is called when necessary by the rich text engine, i.e. on text blocks which have changed.
d.h. darum musst du dich nicht selbst kuemmern.

mfg,
julian
Nightblizard
Beiträge: 39
Registriert: 7. Oktober 2009 20:32

Beitrag von Nightblizard »

Oh, den Teil habe ich wohl übersehen.

Jedoch will das nicht so, wie ich will.
you must subclass QSyntaxHighlighter and reimplement highlightBlock().
Gemacht, aber wenn ich compile sagt der Compiler
cannot declare variable `widget' to be of type `Widget'
because the following virtual functions are abstract:
virtual void QSyntaxHighlighter::highlightBlock(const QString&)
Die Klasse:
http://pastebin.com/m5c63291
Der Copy+Paste Codeabschnitt:
http://pastebin.com/m4784cf28

Wo liegt mein Denkfehler? :?
niyou
Beiträge: 13
Registriert: 26. Juni 2009 08:28

Beitrag von niyou »

da war ich wohl zu schnell...
Nightblizard
Beiträge: 39
Registriert: 7. Oktober 2009 20:32

Beitrag von Nightblizard »

Kann mir jemand ein konkretes Beispiel zur Benutzung geben? Ich bekomme nichts lauffähiges hin :|
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wo genau tritt der Fehler auf? Die Fehlermeldung so hilft nicht (viel)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Und das Beispiel aus den Examples hilft Dir nicht weiter?

Michael
Nightblizard
Beiträge: 39
Registriert: 7. Oktober 2009 20:32

Beitrag von Nightblizard »

Nein, da mir anscheinend die Datei "QtCored4.dll" fehlt und ich diese bis jetzt noch nicht im Netz gefunden habe. Es gibt die Datei QtCore4.dll, aber diese umbenennen und es damit versuchen funktioniert natürlich nicht...

Ich bin am verzweifeln, schon wieder ein GUI, welches nicht funktioniert! :(
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Das Beispiel im Release Mode kompilieren, oder die Debug Libs erstellen!!! Aber sollte doch eigentlich Vorraussetzung sein!!!

Michael
Nightblizard
Beiträge: 39
Registriert: 7. Oktober 2009 20:32

Beitrag von Nightblizard »

Stimmt, jetzt komme ich weiter, jedoch ist das Endergebnis nicht das was ich mir erhofft habe - ein Windoof Problembericht...

Die Header:
http://pastebin.com/m733f6b2a

Der dazugehörige Code:
http://pastebin.com/m5209824d

Main Funktion:
http://pastebin.com/m729402f7

Vielleicht hilft euch ja diese Meldung:
C:\Dokumente und Einstellungen\DWG\Eigene Dateien\wasd\release\wasd.exe exited with code -1073741819

Edit:
Vorgerfertigte Qt4 GUI Application Projekte enden auch beim Problembericht.
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Schon mal geschaut ob noch andere Lib's im Pfad sind???

Du solltest Dein Programm als zip hier anhängen, dann kann man das schneller testen.

Michael
Antworten