1

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) {
    }
}

更新:ちなみにイベントをキャプチャします:)

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 に答える