java - QPixmap悬停效果?

标签 java qt qt-jambi

我需要向添加到 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/

相关文章:

java - 如何为通过 gradle 构建变体生成的两个版本的 GPS 应用程序获取不同的图标?

java - Azure SDK for Java - 引发 InvalidKeyException 的示例程序

java - 即使添加到构建路径并清理后也无法解决导入问题

qt - QString和QLatin1String有什么区别?

java - 将 .jui 文件转换为 .java 文件,qt-jamba

java - qtjambi - QApplication.initialize 在主方法之外

java - 根据长度对数组中的字符串进行排序

c++ - 插槽和信号无限循环

c++ - 有条件地链接到 qmake 中定义的共享库

java - Qt Jambi 应用程序和不同的操作系统