Эффект парения QPixmap? - PullRequest
       21

Эффект парения QPixmap?

1 голос
/ 04 декабря 2011

Мне нужно добавить «эффект наведения» к некоторым QPixmaps, добавленным к QGraphicsScene.Я хотел бы «выделить» мой QPixmap, заполнив его наполовину прозрачным белым цветом, когда пользователь наводит курсор на него.Если это вообще возможно, я хочу избегать использования метода setPixmap(QPixmap) для обмена моим растровым изображением с готовым «парящим изображением».Это то, что у меня так далеко:

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

Обновление: это действительно фиксирует события:)

1 Ответ

1 голос
/ 04 декабря 2011

Если вам известны координаты растрового изображения, вы можете:

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

создать прозрачный белый прямоугольник поверх растрового изображения.

(Извините, если мой Java плохЯ адаптирую то, что знаю из стиля PyQt).

...