Pregunta

Necesito agregar un "efecto de desplazamiento" a algunos QPixmaps agregado a un QGraphicsScene. Me gustaría "resaltar" mi QPixmap Al llenarlo con un color blanco transparente a mitad de camino, cuando el usuario se cierne sobre él. Si es posible, quiero evitar usar el setPixmap(QPixmap) Método para intercambiar mi PIXMAP con una "Imagen de desplazamiento" prefabricada. Esto es lo que tengo hasta ahora:

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

Actualizar: Captura los eventos por cierto :)

¿Fue útil?

Solución

Si conoce las coordenadas del PIXMAP, puede hacer:

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

Para crear un rectángulo blanco transparente en la parte superior del PIXMAP.

(Lo siento si mi Java es malo, estoy adaptando lo que sé del estilo Pyqt).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top