QSyntaxHighlighter - Nur noch ein kleiner Schritt zum Erfolg

Alles rund um die Programmierung mit Qt
Antworten
PPJens
Beiträge: 3
Registriert: 26. April 2011 19:14

QSyntaxHighlighter - Nur noch ein kleiner Schritt zum Erfolg

Beitrag von PPJens »

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!
Dateianhänge
MySyntaxHighlight.cpp
(330 Bytes) 146-mal heruntergeladen
MySyntaxHighlight.h
(312 Bytes) 152-mal heruntergeladen
MyWidget.h
(424 Bytes) 150-mal heruntergeladen
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

"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..
PPJens
Beiträge: 3
Registriert: 26. April 2011 19:14

Beitrag von PPJens »

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?
Dateianhänge
MyWidget.cpp
(650 Bytes) 134-mal heruntergeladen
main.cpp
(200 Bytes) 148-mal heruntergeladen
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

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..
PPJens
Beiträge: 3
Registriert: 26. April 2011 19:14

Beitrag von PPJens »

Es funktioniert!
Vielen Dank dafür!^^
Ich werde mich dann mal mit dem Debugger beschäftigen... :wink:
Antworten