Question

Je dois ajouter quelque QPixmaps ajouté à un QGraphicsScene un « effet de vol stationnaire ». Je voudrais « highlight » mon QPixmap en le remplissant avec une couleur blanche transparente à mi-chemin lorsque passe la souris dessus dessus. Si possible, je veux éviter d'utiliser la méthode de setPixmap(QPixmap) pour échanger mon pixmap avec un cadeau original « image hover ». Voilà ce que j'ai à ce jour:

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) {
    }
}

Mise à jour: il fait connaître les événements de la manière suivante:)

Était-ce utile?

La solution

Si vous connaissez les coordonnées du pixmap, vous pouvez faire:

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

pour créer un rectangle blanc transparent au-dessus du pixmap.

(Désolé si mon Java est mauvaise, je sais ce que j'adapte le style de PyQt).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top