Je suis en train d'écrire une simulation de l'écran d'un périphérique embarqué (qui contient des widgets personnalisés sur un QWidget principal), et bien que la taille native de l'écran soit de 800x600, je veux pouvoir faites-le monter et descendre en faisant glisser le coin de la fenêtre. Sans tricher avec les mises en page de la grille et les bretelles (qui n'alourdiront pas les polices de haut en bas), comment puis-je accomplir ce genre de zoom? Je pense qu'une partie de la solution pourrait être de créer un QTransform et de l'injecter dans le QWidget pour l'application entière, ou son QPaintDevice ou QPaintEngine. Je voudrais le faire sans mettre QTransform dans chaque widget personnalisé, juste la "fenêtre principale" QWidget.Peinture évolutive d'une application Qt
3
A
Répondre
5
Ceci est possible si vous utilisez QGraphicsView comme widget d'affichage principal. QGraphicsScene prend désormais en charge les widgets en tant que contenu, vous pouvez donc les mettre à l'échelle.
Je crois que l'alternative est de réimplémenter la peinture() pour chaque widget, et de définir manuellement la transformation/échelle avant la peinture des widgets enfants.
0
Un peu de deviner ici car je ne l'ai pas essayé ... mais vous pouvez essayer de mettre le widget de haut niveau dans un QGraphicsView puis obtenir le QGraphicsView pour faire la mise à l'échelle. Vous pouvez ensuite activer OpenGL sur QGraphicsView et le mettre à l'échelle dans le matériel pour qu'il soit agréable et rapide.
Questions connexes
- 1. Planification du développement d'une application Web évolutive
- 2. Langage côté serveur pour application TCP-socket évolutive
- 3. Quel framework HTTP utiliser pour une application simple mais évolutive?
- 4. Debug Qt application parmi dlls
- 5. Superposition de google maps évolutive
- 6. Comment faire un délégué d'objet de peinture QCombobox pour son objet actuel? (Qt 4)
- 7. Comment faire pour exécuter une application Qt?
- 8. Comment déployer une application Qt sous Windows?
- 9. Utiliser taglib dans une application Qt
- 10. Peinture d'un custom JScrollBar
- 11. Peinture via QDirectPainter
- 12. Manuel Peinture Numéro
- 13. DataGridViewComboBoxCell article inactif peinture
- 14. Quelle est la meilleure pratique pour une application web évolutive impliquant un état de session?
- 15. Filtre à apparence de peinture
- 16. Win32 SDK fenêtre enfant peinture (C/C++)
- 17. Plug-in Qt de boucle d'événement Mac dans une application non-Qt
- 18. Comment puis-je m'assurer de lier dynamiquement mon application au framework Qt dans Qt Creator?
- 19. Comparaison de l'architecture d'application Web évolutive sur Java et .NET
- 20. Jdesktop ou Qt pour une meilleure application de bureau
- 21. Portage d'une application Qt de Linux vers Windows
- 22. Architecture pour application Qt avec script Lua - exécution de pause
- 23. Application de profilage Qt qui utilise des plugins
- 24. stdout/cout à partir d'une application lancée depuis qt creator?
- 25. Java jogl applet peinture ne fonctionne pas?
- 26. Peinture au-dessus du composant JMF
- 27. Problème de peinture sous forme de fenêtre
- 28. Substitution de la méthode de peinture DataGridViewTextBoxCell
- 29. Lignes de peinture dans un JTable
- 30. Programme de peinture open source simple
Cela fonctionne bien - merci! Voici plus de détails sur ce que j'ai fait: Tout d'abord, suivez les instructions pour montrer un QGraphicsScene dans un QGraphicsView. Pour obtenir l'effet de zoom, dérivez de QGraphicsView et redéfinissez resizeEvent(), en appelant 'fitInView (items() [0]);'. Fonctionne comme un champion! (N'avez pas encore assez de représentant pour vous voter - désolé). – Scott
Vous pourriez marquer sa réponse comme correcte cependant. – chrism1
Désolé, cela a pris plus d'un an ... – Scott