Seite 1 von 1

QRect / setTopLeft & setBottomRight nicht ausführbar

Verfasst: 21. Februar 2006 15:18
von Red_Hood
Hallo Leute!!
Habe ein Koordinatenkreuz gezeichnet und versuche die Kurven, die ich erstellt habe, zu markieren! Die Klasse QRect ist definiert
(QRect rubberBandRect)!! Aber er gibt mir immer wieder die selben Fehlermeldungen aus.
Code:

Code: Alles auswählen

void SignalDiagram::mousePressEvent(QMouseEvent *event)
{
	if(event->button() == LeftButton)
	{

		rubberBandIsShown = true;
		rubberBandRect.setTopLeft(event->pos());
		rubberBandRect.setBottomRight(event->pos());
		updateRubberBandRegion();
		setCursor(crossCursor);
	}
}
Fehler: error C2039: 'setTopLeft' : Ist kein Element von 'QRect'
error C2039: 'setBottomRight' : Ist kein Element von 'QRect'

Kann mir jemand sagen wie ich das Problem lösen kann?

Vielen Dank

Verfasst: 21. Februar 2006 20:14
von upsala
Was meint den deine Compilerdokumentation zu Fehler C2039? Mir sagt das überhaupt nichts... Ist das überhaupt eine Compilerfehlermeldung?

Verfasst: 21. Februar 2006 20:50
von Christian81
upsala hat geschrieben:Was meint den deine Compilerdokumentation zu Fehler C2039? Mir sagt das überhaupt nichts... Ist das überhaupt eine Compilerfehlermeldung?
Sie sagt genau das was dortsteht...

Allerdings ist es wirklich komisch - die Funktion gibt es in Qt3.x und auch 4.x. Versuche einfach mal eine andere Funktion von QRect aufzurufen. Wird qrect.h auch includiert?

Verfasst: 21. Februar 2006 21:51
von Red_Hood
Hallo Christian81!!
Allerdings ist es wirklich komisch - die Funktion gibt es in Qt3.x und auch 4.x.
Genau das Selbe sage ich mir auch die ganze Zeit!
Wird qrect.h auch includiert?
Ja die HeaderDatei wird includiert! Hinter der Fehlermeldung kann ich mir die Eigenschaften von QRect ansehen und da steht nichts anderes als in den Büchern oder in der Qt-Hilfe!

:roll: :roll: :roll: :roll:

Verfasst: 21. Februar 2006 22:52
von Christian81
Dann definier dir in der Funktion einfach mal ein QRect

Code: Alles auswählen

QRect r(0,0,10,10);
r.moveLeft(5);
r.setBottom(20);
...
was auch immer - einfach mal damit rumspielen und schauen ob das funktioniert.

Verfasst: 22. Februar 2006 11:26
von Red_Hood
Problem gelöst!

setTopLeft kann in QRect nicht verwendet werden, da "setTopLeft" nicht definiert ist! TopLeft, ButtomRight usw. sind Punkte, die man mit "move" errecht und nicht mit "set"!

Als Erstes setzt man die Punkte des QRect(links, rechts...). Anschließend gibt man mit dem Befehl

Code: Alles auswählen

moveTopLeft(position);
moveButtomRight(position);
die Positionen an, in welche Richtung das QRect erstellt werden soll! In diesem Fall also: Oben-Links & UntenRechts!

Danke für deine Hilfe Christian81!!!

Gruß
Red_Hood :lol: :lol: