Je voudrais essayer de faire en sorte que chacun des éléments qui a besoin de faire défiler de concert est à l'intérieur de son propre QScrollArea
. Je voudrais ensuite mettre tous ces widgets dans un widget, avec un QScrollBar
dessous (et/ou sur le côté, si nécessaire).
Désigner l'un des widgets à défilement intérieur comme «maître», probablement le widget de tracé. Ensuite, procédez comme suit:
- Définissez chaque stratégie de barre de défilement horizontale
QScrollArea
pour ne jamais afficher les barres de défilement.
- Le
horizontalScrollBar()
rangeChanged(int min, int max)
signale à un emplacement qui définit le QScrollBar
horizontale du widget principal à la même plage. De plus, il doit définir la même plage pour les barres de défilement horizontales du widget de la zone de défilement.
- Le signal
valueChanged(int value)
horizontal de QScrollBar
doit être connecté à l'emplacement setValue(int value)
de la barre de défilement horizontale de chaque zone de défilement.
- Répétez l'opération pour les barres de défilement verticales si vous effectuez un défilement vertical.
Il ya un endroit où je pense que cela pourrait mal se passer, et c'est le défilement de la molette de la souris. Vous pourriez résoudre cela de plusieurs façons. L'un serait de connecter toutes les zones de défilement à un emplacement qui se déclenche lorsque leur valeur change, ce qui met à jour toutes les autres barres de défilement. L'autre serait d'installer des filtres d'événements sur ces widgets, et d'ignorer le défilement ou de le traiter avec les barres de défilement principales.
Merci beaucoup cjhuitt. – Drewen