J'essaie d'implémenter une fonctionnalité de survol lorsque je repeins l'élément lorsque je survole des zones spécifiques de mon objet.Je ne reçois pas mouseMoveEvent sans le bouton de la souris
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();
}
};
Cependant, en utilisant cette classe je ne reçoivent aucune sortie « mouseMoveEvent() » sur la borne lorsque je déplace le curseur sur mon élément. Cela ne fonctionne que lorsque vous maintenez un bouton de la souris.
Comment archiver sans forcer l'utilisateur à appuyer sur un bouton de la souris?