1

我需要为添加QPixmapsQGraphicsScene. 当用户将鼠标悬停在它上面时,我想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) {
    }
}

更新:它确实捕获了事件:)

4

1 回答 1

1

如果你知道像素图的坐标,你可以这样做:

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

在像素图顶部创建一个透明的白色矩形。

(对不起,如果我的 Java 不好,我正在调整我从 PyQt 风格中知道的内容)。

于 2011-12-04T14:49:28.653 回答