Вопрос

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

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

Обновлять: Кстати, он захватывает события :)

Это было полезно?

Решение

Если вы знаете координаты PixMap, вы можете сделать:

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top