Bonjour à tous,
J'ai un problème relatif au flag WA_TransparentForMouseEvents et au service PC tablet component.
J'utilise des QWidgets comme overlay de dessin avec comme attribut :
setAttribute(Qt::WA_TransparentForMouseEvents);
permettant de dessiner au dessus de QGraphcisView, QTreeWidget, etc. tout en ne bloquant pas les événements de souris pour déplacer les items de ces vues.
Le soucis c'est qu'une fois un driver de tablet tel que Wacom Intuos 3 driver installé, cela ne marche plus. Il s'agit d'un problème dans Qt, les événements sont transférés non pas au prochain widget dans la pile mais au parent du Overlay qui peut être n'importe quoi, et surement pas un graphics item or tree item.
Je viens à cours d'idée pour contourner le problème, si jamais vous savez pourquoi Qt fait ça, qu'elle ligne de code plante (le problème c'est pour les drag/drop/hover/leave event et non les mouse move/press/release event).
Ou si vous avez une idée de comment utiliser un widget en tant qu'overlay de dessin sans avoir à utiliser ce flag, mais que les événements de souris soient toujours envoyé à l'élément en dessous.
Votre aide est plus qu'aprécié.
J'attache un prototype montrant le problème, si vous installer le pilote mis en lien plus haut, le drag and drop d'un fichier externe dans cette application marchera sur l'arbre mais pas sur la partie ou il y a l'overlay vert. Sans le pilote, cela marche impeccable tout le temps.
Partager