J'essaie d'afficher une image dans sa vue complète en utilisant QGraphicsScene. Mais quand je mets le QgraphicsScene à l'intérieur de QGraphicsView, j'obtiens une barre de défilement. J'ai essayé tant de façons Mais tout est allé aux veines. Alors quelqu'un peut-il me dire comment obtenir la vue complète sans la barre de défilement.Qt - QGraphicsView sans ScrollBar
5
A
Répondre
5
QGraphicsView v;
v.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
v.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
Pour régler le défilement par programmation une fois que ceux-ci ont été cachés, utilisez l'une des surcharges de v.ensureVisible()
.
8
Vous obtiendrez peut-être des barres de défilement car la scène est plus grande que la zone utilisable dans la vue graphique. Par défaut, un QGraphicsView est livré avec une marge de 1 pixel. Pour résoudre ce problème, vous pouvez essayer:
QRect rcontent = graphicsView.contentsRect();
graphicsView.setSceneRect(0, 0, rcontent.width(), rcontent.height());
j'avais été faire scrollbars parce que je mettais manuellement la rect scène à la taille de l'élément graphique que j'ajoutais - qui était aussi grand que le widget QGraphicsView. Je ne tenais pas compte de la marge.
Questions connexes
- 1. Comment utiliser QGraphicsView dans Qt?
- 2. Qt-> QGraphicsView-> QGraphicsItem redimensionnant
- 3. 100% Div hauteur sans scrollbar
- 4. Question de rendu QGraphicsView/QGraphicsScene
- 5. QGraphicsView et eventFilter
- 6. Événements QGraphicsView acceptés
- 7. Personnalisé ScrollViewer ScrollBar sans Custom ScrollBar dans les contrôles internes (comme TextBox)
- 8. Qt, Signals sans nommer?
- 9. PyQt4 sur Mac: QGraphicsView avec OpenGL scintille
- 10. Qt problème QBrush
- 11. Make QGraphicsView faire centerOn lisse
- 12. Défilement de QGraphicsView par programmation
- 13. Javascript Scrollbar
- 14. javafx scrollbar
- 15. possible de créer des graphiques personnalisés scrollbar sans flash?
- 16. QGLWidget + QGraphicsScene + QGraphicsView problème
- 17. QGraphicsView ensureVisible() et centerOn()
- 18. QGraphicsView question noobie
- 19. Scrollbar dans un scrollbar seulement faire le saut scrollbar intérieur pour id
- 20. Définition d'une couleur d'arrière-plan pour un widget QGraphicsView
- 21. Qt 4.6 - Comment faire glisser et déposer dans un QGraphicsView dans QtCreator?
- 22. Puis-je utiliser Qt sans qmake ou Qt Creator?
- 23. Centre QGraphicsView dans le widget
- 24. Flex 4 Application Scrollbar
- 25. Safari Frames Invisible Scrollbar
- 26. Flex3 Canvas, ScrollBar
- 27. Actionscript 3 Scrollbar
- 28. Emacs scrollbar custom
- 29. Personnalisé ScrollBar en Flash
- 30. fond IE7 scrollbar enfer
Y at-il un moyen de désactiver simplement la marge de 1 pixel? Votre code corrige le problème pour moi, mais il ressemble toujours à une correction évidente d'un défaut par défaut. – Trilarion
Nope; cette marge est codée en dur dans 'fitInView' (voir QTBUG-11945). La seule façon de s'en débarrasser est d'écrire votre propre 'fitInView'. Il y a eu quelques discussions pour exposer la marge via une API mais cela n'a pas encore été fait dans aucune version de Qt. – AndrewS