我需要添加一个“悬停效应”到一些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) {
}
}更新:--顺便说一句,它确实捕获了事件:)
发布于 2011-12-04 14:49:28
如果您知道像素映射的坐标,则可以:
graphicsscene.addRect(pixmap.rect(),
new QPen(),
new QBrush(new QColor(255, 255, 255, 128)));若要在像素地图顶部创建透明的白色矩形,请执行以下操作。
(对不起,如果我的Java不好,我正在调整我从PyQt风格中知道的内容)。
https://stackoverflow.com/questions/8375835
复制相似问题