我需要向添加到 QGraphicsScene
的一些 QPixmap
添加“悬停效果”。当用户将鼠标悬停在 QPixmap 上时,我想通过用半透明的白色填充它来“突出显示”我的 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) {
}
}
更新:它确实捕获了事件:)
最佳答案
如果你知道像素图的坐标,你可以这样做:
graphicsscene.addRect(pixmap.rect(),
new QPen(),
new QBrush(new QColor(255, 255, 255, 128)));
在像素图顶部创建一个透明的白色矩形。
(抱歉,如果我的 Java 不好,我正在改编我从 PyQt 风格中了解到的内容)。
关于java - QPixmap悬停效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8375835/