QWidget soll Cursor folgen

Alles rund um die Programmierung mit Qt
Antworten
the_immortal
Beiträge: 39
Registriert: 31. Mai 2006 21:21
Wohnort: CH

QWidget soll Cursor folgen

Beitrag von the_immortal »

Ich möchte, dass ein QWidget dem Cursor folgt, und ich mache im MouseMoveEvent einfach ein move auf das Widget das dem Cursor folgen soll und übergebe die event position. Jedoch folgt das QWidget dem Cursor nur teilweise und springt wieder in die ursprüngliche Position zurück!

Hier die triviale Zeile Code

Code: Alles auswählen

lstLimiter.value(intTmp1)->move(QPoint(pos() + event->pos() - pntPrev).x(), 20);
the_immortal
Beiträge: 39
Registriert: 31. Mai 2006 21:21
Wohnort: CH

Beitrag von the_immortal »

scheint wohl im Zusammenhang mit der QList zu stehen, in welcher das QWidget welches dem Cursor folgen sollte, gespeichert ist. Die Funktion value() gibt ein T const zurück!

Warum ist das denn const und was ist wenn ich das Objekt jetzt verändern will?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

1. Weil eine Funktion als const definiert ist, springt den Widget nicht hin und her, sondern gibt es eine Fehlermeldung beim kompilieren
2. Ist bei QList::value die Funktion als const deklariert nicht der Rückgabewert
3. Falls dir das const trotzdem nicht gefallen sollte, stehen in der Doku auch alternativen
the_immortal
Beiträge: 39
Registriert: 31. Mai 2006 21:21
Wohnort: CH

Beitrag von the_immortal »

upsala hat geschrieben:1. Weil eine Funktion als const definiert ist, springt den Widget nicht hin und her, sondern gibt es eine Fehlermeldung beim kompilieren
2. Ist bei QList::value die Funktion als const deklariert nicht der Rückgabewert
3. Falls dir das const trotzdem nicht gefallen sollte, stehen in der Doku auch alternativen
Ich weiss auch nicht genau wo das Problem liegt, jedoch habe ich später auch noch bemerkt dass es wohl doch nichts mit const zu tun haben kann.

Ich habe das Problem nun mit einem anderen Lösungsansatz umgangen :) !
Antworten