Je travaille sur un programme de peinture simple. Il semblait que Qt (et KDE) serait un moyen facile de l'implémenter. Je trouve Qt assez facile à utiliser, mais maintenant j'ai rencontré un problème.Qt, souris sautant, ne pas mettre à jour chaque pixel, mouseMoveEvent()
Lorsque je dessine quelque chose dans mon programme, la souris saute si je déplace la souris trop rapidement.
comme ceci:
Il susposed être comme une longue chaîne. J'utilise mouseMoveEvent() pour dessiner un pixel sur mon image lorsque le bouton gauche de la souris est enfoncé. J'ai appelé setMouseTracking (true); donc l'événement devrait être appelé aussi longtemps que je bouge la souris.
void camoMaker::mouseMoveEvent(QMouseEvent *ev)
{
if(ev->state()==Qt::LeftButton)
{
QPoint mPoint=ev->pos();
mPoint.setX(mPoint.x()-80);
drawPoint(mPoint);
}
}
camoMaker est le widget principal. DrawPoint() dessine un pixel sur une QImage interne et utilise QPainter sur un QWidget qui est la zone de dessin.
Il me semble que soit mouseMoveEvent() n'est pas appelé pour chaque pixel que la souris déplace ou que la souris saute effectivement un pixel. Je comprends qu'il pourrait juste comment cela fonctionne et pas Qt faute mais X11 ou comment le système d'exploitation gère la position/entrée de la souris.
Si oui, comment dois-je faire pour le réparer, devrais-je essayer d'interpoler à partir de 2 points qui est enregistré?