我需要为添加到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) {
}
}
更新:它确实按照以下方式捕获事件:)
答案 0 :(得分:1)
如果你知道像素图的坐标,你可以这样做:
graphicsscene.addRect(pixmap.rect(),
new QPen(),
new QBrush(new QColor(255, 255, 255, 128)));
在像素图上创建一个透明的白色矩形。
(对不起,如果我的Java很糟糕,我正在调整我从PyQt风格中得到的知识)。