Hallo!
Ich bin Anfaenger in Sachen Qt/C++ und hab ein Problem mit QSyntaxhighlighter und setFontCapitalization (aus dem Qt Richtext Beispiel "Syntax Highlighter Example").
Ich verwendet ein textEdit Widget und moechte bestimmte Keywoerter hervorheben. Dazu hab ich das Qt Beispiel mit QSyntaxhightlighter abgeaendert. Das highlighting funktioniert prima, auch waehrend der Eingabe. Was ich nun noch brauche ist, dass die Keywoerter, welche hervorgehoben werden, auch alle gross geschrieben werden. Dazu wollte ich in highlighter.cpp folgendes verwenden:
keywordFormat.setFontCapitalization(QFont::AllUppercase);
Aber in der Methode highlightBlock vom QSyntaxhighlighter scheint diese Formatangabe beim Aufruf von setFormat(...) ignoriert zu werden. Der Text wird zwar eingefaerbt wie von mir vorgegeben, auch Bold, Italic, etc. geht, aber keine Grossbuchstaben...
Mach ich was falsch oder weiss jemand wie ich das bewerkstelligen kann?
Ach ja, ich verwende als QSyntaxhighlighter-parent das QTextDocument von textEdit. Und gross sollen natuerlich nur die eingefaerbten Keywoerter geschrieben werden.
Problem mit Syntaxhighlighting und setFontCapitalization
Kann jemand bestaetigen, dass die Grossbuchstaben nicht moeglich sind?
Dazu einfach das Syntax Highlighter Example oeffnen und im highlighter.cpp folgendes einfuegen: keywordFormat.setFontCapitalization(QFont::AllUppercase);
Meine Vermutung ist, dass das nicht geht, weil es gar nicht vorgesehen ist (wozu gibts dann das setFontCapitalization ueberhaupt?) oder es handelt sich um einen Bug (der nicht aufgefallen ist, weil das sowieso niemand verwendet). Oder ich verwende das falsch...
Dazu einfach das Syntax Highlighter Example oeffnen und im highlighter.cpp folgendes einfuegen: keywordFormat.setFontCapitalization(QFont::AllUppercase);
Meine Vermutung ist, dass das nicht geht, weil es gar nicht vorgesehen ist (wozu gibts dann das setFontCapitalization ueberhaupt?) oder es handelt sich um einen Bug (der nicht aufgefallen ist, weil das sowieso niemand verwendet). Oder ich verwende das falsch...