MouseMoveEvent aktivieren/Icons in Toolbar

Alles rund um die Programmierung mit Qt
Antworten
Gruwe
Beiträge: 21
Registriert: 14. April 2011 18:15

MouseMoveEvent aktivieren/Icons in Toolbar

Beitrag von Gruwe »

Hallo Leute,

ich programmiere derzeit eine Art Schaltplan-Editor und arbeite mich damit gleichzeitig in Qt ein.
Nun habe ich zwei Probleme, für die ich bisher keine Lösung finden konnte:

1. Ich habe eine Zeichenfläche, in der ich die entsprechenden Schaltplan-Symbole platzieren kann. So soll es funktionieren:

Ist die Schaltfläche in der Toolbox für ein Schaltplan-Element aktiviert und wird die Mouse über die Zeichenfläche bewegt, hängt das Symbol am Mauszeiger
so lange bis die Maus geklickt wird und das Symbol dort dann fest platziert wird. Das funktioniert soweit auch ganz gut. Allerdings gibt es folgendes Problem:

Das Symbol hängt erst am Mauszeiger bzw. bewegt sich mit diesem mit, sobald ich einmal in die Zeichenfläche geklickt habe. Ich möchte aber, dass es direkt am Mauszeiger hängt, sobald ich mit dem Mauszeiger die Zeichenfläche betrete. Wie kann ich das lösen?

2. Habe ich mir Icons mit den entsprechenden Symbolen für die Toolbar erstellt. Die Icons liegen mir in den Dateiformaten .png und .ico vor. Die Symbol-Dateien habe ich in den richtigen Ordner (in dem die Header- und Sourcedateien bzw. die Exe-Datei vorhanden ist) gelegt.
Die Icons habe ich wie folgt zur ToolBar hinzugefügt:

Code: Alles auswählen

QToolBar *toolWork = addToolBar ( tr("Elemente"));
toolWork -> setToolButtonStyle (Qt::ToolButtonIconOnly);

addResistor = toolWork -> addAction (QIcon(":/resistor.png"), tr("Resistor), this, SLOT( newResistor());
...
Im Prinzip funktioniert das auch alles, das Icon ist anklickbar und erfüllt auch seine Funktion.
Problem hierbei ist, dass kein Icon angezeigt wird. Es wird zwar ein Kasten entsprechend der Größe auf der ToolBar angezeigt und ist auch anklickbar,
jedoch wird das Icon nicht angezeigt, nur die Bezeichnung des Buttons. Wo liegt hier das Problem?


MfG und Danke
Gruwe
Gruwe
Beiträge: 21
Registriert: 14. April 2011 18:15

Re: MouseMoveEvent aktivieren/Icons in Toolbar

Beitrag von Gruwe »

Hallo Leute,
ich nochmal! ;)

Kann mir denn keiner zumindest bei einer meiner Fragen helfen? :(
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: MouseMoveEvent aktivieren/Icons in Toolbar

Beitrag von franzf »

1) Wie genau hast du das umgesetzt? Wer kümmert sich darum, dass das Icon am Zeiger klebt? Da wäre Code nicht schlecht - mindestens die Methoden, die fürs dranpappen zuständig sind, optimal aber wäre ein minimales kompilierbares Beispiel.
2) Du Die Pfadangabe des Icons (:/resistor.png) deutet darauf hin, dass es in einer Resource-Datei liegt. Da brauchst du keine Icons mehr mitzuliefern. Dass nur ein rechteckiger Kasten angezeigt wird, deutet darauf hin, dass das Icon nicht valid ist - die Bilddatei wird nicht gefunden. Die Größe ist bei den Toolbar-Icons immer fix, darum sollte auch die Größe passen ;)
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Re: MouseMoveEvent aktivieren/Icons in Toolbar

Beitrag von archer »

Zu 1:
setMouseTracking(true); ?

Zu 2:
Sind die pngs denn auch in eine Resource kompiliert?
Stimmt der Pfad ":/resistor.png"?
Antworten