Frage

Ich bin ein neuer Java / Qt-Programmierer und ich versuche, eine GUI mit Java und Qt Jambi zu erstellen.

Ich lege eine Pixmap in ein Etikett und es funktioniert gut, aber jetzt muss ich die Bildkoordinaten abrufen, wenn ich auf die PixMap im Etikett klicke.Ich brauche die Qwidget-Koordinaten nicht.Ich brauche nur die PixMap-Koordinaten, um das Bild auf dem angeklickten Punkt zu arbeiten.

Ich denke, ich sollte das mousedressivent Event überschreiben, aber ich weiß nicht, wie ich es an der "Pixmap Onclick" anhängen soll.

Kannst du mir bitte ein einfaches Beispiel machen?

Ich hoffe, ich habe mein Problem auf dem richtigen Weg erklärt, mein Englisch ist nicht fantastisch, sorry!

War es hilfreich?

Lösung

Ich glaube, ich sollte das mouseReTevent-Ereignis überschreiben, aber ich weiß nicht, wie ich es an der "Pixmap Onclick" anhängen soll.

Sie scheinen Ereignisse und Signale gemeinsam verwirrend zu sein. Ersteres ist ein QEEVENT, der letztere ein Signal ist. Was Sie brauchen, ist das erstere, und Sie brauchen den letzteren nicht.

Sie müssen die Qlabel-Klasse unterklassifizieren und beim Schreiben von C ++ (nicht qt Jambi in Java nicht so etwas schreiben (nicht qt Jambi in Java, aber Sie können es als Pseudo-Code auf beiden Weise annehmen).

generasacodicetagpre.

Also, abhängig von Ihrem Anwendungsfall müssen Sie in die Dokumentation dieser Methoden eingehen:

void qwidget :: mouseReTevent (qmouseevent * Ereignis) [virtuell geschützt]

Dieser Ereignis-Handler, für Ereignisereignis, kann in einer Unterklasse neu eingegliedert werden, um Maus-Presseereignisse für das Widget zu erhalten.

Wenn Sie neue Widgets in der MouseReReEvent () erstellen, kann der MOUSERELEEVEEVENT () nicht enden, wo Sie erwarten, abhängig vom zugrunde liegenden Fenstersystem (oder X11 Window Manager), den Ort des Widgets und möglicherweise mehr.

Die Standardimplementierung implementiert das Schließen von Popup-Widgets, wenn Sie außerhalb des Fensters klicken. Für andere Widget-Typen tut es nichts.

und dann ist dies die Methode, um die lokale Position zu erhalten, die auch mit QT 4 arbeitet. Möglicherweise möchten Sie localPOS () oder andere in QT 5 eingeführte Methoden berücksichtigen, wenn Sie mehr Präzision mit Float usw. benötigen, usw.

qpoint qmouseevent :: pos () const

gibt die Position des Mauszeigers relativ zu dem Widget zurück, das das Ereignis erhielt.

Wenn Sie das Widget als Ergebnis des Mausereignisses verschieben, verwenden Sie die von GlobalPOS () zurückgegebene globale Position, um eine Schüttelbewegung zu vermeiden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top