0
私は自分のアイテムの特定の領域にマウスカーソルを合わせると、アイテムを再描画するホバー機能を実装しようとしています。マウスボタンを押さずにmouseMoveEventを受け取っていません
class TestItem : public QQuickItem
{
Q_OBJECT
public:
explicit TestItem(QQuickItem *parent = nullptr) : QQuickItem(parent)
{
setAcceptHoverEvents(true);
setAcceptedMouseButtons(Qt::AllButtons);
}
protected:
// QQuickItem interface
void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE
{
qDebug() << "mouseMoveEvent()" << event->buttons() << event->x() << event->y();
}
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE
{
qDebug() << "mousePressEvent()" << event->buttons() << event->x() << event->y();
}
void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE
{
qDebug() << "mouseReleaseEvent()" << event->buttons() << event->x() << event->y();
}
};
ただし、このクラスを使用すると、私は私の項目の上にカーソルを移動すると、端末上の任意の「mouseMoveEvent()」出力を受信いけません。任意のマウスボタンを押したままで動作します。
これを実現するには、ユーザーがマウスボタンを押さないでください。