Domanda
Devo aggiungere un "effetto hover" ad alcuni QPixmaps
aggiunto a a QGraphicsScene
. Vorrei "evidenziare" il mio QPixmap
riempiendolo con un colore bianco trasparente a metà strada quando l'utente si libra su di esso. Se possibile, voglio evitare di usare il setPixmap(QPixmap)
Metodo per scambiare la mia mamap con un premade "hover immagine". Questo è quello che ho finora:
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) {
}
}
Aggiornare: A proposito, cattura gli eventi :)
Soluzione
Se conosci le coordinate di Pixmap, puoi fare:
graphicsscene.addRect(pixmap.rect(),
new QPen(),
new QBrush(new QColor(255, 255, 255, 128)));
Per creare un rettangolo bianco trasparente sopra la mappa della pix.
(Scusa se il mio Java è cattivo, sto adattando ciò che so dallo stile Pyqt).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow