Frage

Ich muss einigen einen "Schwebeffekt" hinzufügen QPixmaps hinzugefügt zu a QGraphicsScene. Ich möchte meine "hervorheben" QPixmap Indem Sie es mit einer halbwegs transparenten weißen Farbe füllen, wenn der Benutzer darüber schwebt. Wenn möglich, möchte ich das verwenden setPixmap(QPixmap) Methode zum Austausch meines Pixmap mit einem vorgefertigten "Hover -Bild". Das habe ich so weit:

import com.trolltech.qt.gui.QGraphicsPixmapItem;
import com.trolltech.qt.gui.QGraphicsSceneHoverEvent;
import com.trolltech.qt.gui.QPixmap;

public class SelectablePixmapItem extends QGraphicsPixmapItem {

    private QPixmap pixmap;

    public SelectablePixmapItem(QPixmap pixmap) {
        super(pixmap);
        setAcceptHoverEvents(true);
        setItemPixmap(pixmap);
    }

    private void setItemPixmap(QPixmap pixmap) {
        this.pixmap = pixmap;
    }

    @Override
    public void hoverEnterEvent(QGraphicsSceneHoverEvent e) {
    }

    @Override
    public void hoverLeaveEvent(QGraphicsSceneHoverEvent e) {
    }
}

Aktualisieren: Es erfasst die Ereignisse übrigens :)

War es hilfreich?

Lösung

Wenn Sie die Koordinaten des PixMap kennen, können Sie dies tun:

graphicsscene.addRect(pixmap.rect(),
                      new QPen(),
                      new QBrush(new QColor(255, 255, 255, 128)));

So erstellen Sie ein transparentes weißes Rechteck über dem Pixmap.

(Entschuldigung, wenn meine Java schlecht ist, adaptle ich das, was ich aus dem Pyqt -Stil weiß).

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