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 :)
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