Hallo Liebe Qt-Gemeinde!
Ich habe nach diesem Schema versucht, die Grund-Syntax für mein Programm zu übernehmen.
Wenn ich es jedoch ausführen will, kriege ich die Fehlermeldung:
"[...]/MyWidget.h:26: error: ISO C++ forbids declaration of ‘SyntaxHighlight’ with no type"
Die Fehlermeldung kann ich nicht nachvollziehen, weil ich "SyntaxHighlight" von "QSyntaxHighlighter" abgeleitet habe und somit doch ein Typ ist!?
Im Anhang befinden sich meine Source-Codes!
MyWidget.cpp konnte ich nicht mehr anhängen, aber da steht nichts relevantes mehr drin außer:
highlight = new SyntaxHighlight(editor->document());
Ich verstehe nicht, warum ich das nicht gebacken krieg...
Ich bin für jede Hilfe dankbar!
QSyntaxHighlighter - Nur noch ein kleiner Schritt zum Erfolg
QSyntaxHighlighter - Nur noch ein kleiner Schritt zum Erfolg
- Dateianhänge
-
- MySyntaxHighlight.cpp
- (330 Bytes) 146-mal heruntergeladen
-
- MySyntaxHighlight.h
- (312 Bytes) 152-mal heruntergeladen
-
- MyWidget.h
- (424 Bytes) 150-mal heruntergeladen
"MySyntaxHighlight.h" inkludiert "MyWidget.h", welches wiederum versucht, "MySyntaxHighlight.h" zu inkludieren, was jedoch wegen des "#define-Guard"s fehlschlägt .
Du hast also eine sog. "zyklische Abhängigkeit"... eine komplett unnötige noch dazu, denn du benötigst "MyWidget" in "SyntaxHighlighter" ja gar nicht (weder jetzt noch später).
Also: entferne '#include "MyWidget.h"' aus dem MySyntax... und gut ist.
hth..
Du hast also eine sog. "zyklische Abhängigkeit"... eine komplett unnötige noch dazu, denn du benötigst "MyWidget" in "SyntaxHighlighter" ja gar nicht (weder jetzt noch später).
Also: entferne '#include "MyWidget.h"' aus dem MySyntax... und gut ist.
hth..
Jaaa vielen Dank!
Warum ich das getan hab, weiß ich selber nicht...
Die Fehlermeldung ist nun vorbei, aber ich erhalte jetzt eine neue:
Der Prozess wurde nach Erhalt eines Signals vom Betriebssystem angehalten.
Name des Signals : SIGABRT
Bedeutung : Aborted
&"warning: GDB: Failed to set controlling terminal: Das Argument ist ung\303\274ltig\n"
ASSERT: "i >= 0 && i < size()" in file ../../../qtsdk-2010.05/qt/include/QtCore/qstring.h, line 701
Irgendwas passt ihm mit den Strings nicht, wenn ich das richtig sehe... Leider weiß ich nicht, wie ich den Fehler beheben soll, weil ich ja gar nicht genau weiß was ihn stört!
Vielleicht liegt der Fehler in den restlichen 2 Dateien?
Warum ich das getan hab, weiß ich selber nicht...
Die Fehlermeldung ist nun vorbei, aber ich erhalte jetzt eine neue:
Der Prozess wurde nach Erhalt eines Signals vom Betriebssystem angehalten.
Name des Signals : SIGABRT
Bedeutung : Aborted
&"warning: GDB: Failed to set controlling terminal: Das Argument ist ung\303\274ltig\n"
ASSERT: "i >= 0 && i < size()" in file ../../../qtsdk-2010.05/qt/include/QtCore/qstring.h, line 701
Irgendwas passt ihm mit den Strings nicht, wenn ich das richtig sehe... Leider weiß ich nicht, wie ich den Fehler beheben soll, weil ich ja gar nicht genau weiß was ihn stört!
Vielleicht liegt der Fehler in den restlichen 2 Dateien?
- Dateianhänge
-
- MyWidget.cpp
- (650 Bytes) 134-mal heruntergeladen
-
- main.cpp
- (200 Bytes) 148-mal heruntergeladen
1. Du solltest dringend lernen, wie man mit einem Debugger umgeht. Der würde dir sagen, WO denn das Programm genau beendet wird. Nimm dir unbedingt demnächst mal Zeit dafür..
2. Überleg dir, was in der Methode "SyntaxHighlight::highlightBlock(..)" geschieht, wenn ein leerer String (Länge 0) übergeben wird...
hth..
2. Überleg dir, was in der Methode "SyntaxHighlight::highlightBlock(..)" geschieht, wenn ein leerer String (Länge 0) übergeben wird...
hth..