J'utilise un petit écran noir et blanc et j'ai besoin que la barre de défilement soit juste un curseur noir dans un cadre externe noir. J'ai obtenu ce que je voulais en utilisant des feuilles de style, mais les inclure dans la configuration lors de l'installation prend trop de place, donc je ne peux pas les utiliser. Est-il possible de supprimer les flèches en héritant de QStyle ou quelque chose? grâceSuppression des flèches de la barre de défilement dans Qt
Répondre
Vous devez créer une sous-classe d'un QStyle (ou une sous-classe comme QCommonStyle) et réimplémenter sa fonction drawComplexControl() pour peindre l'élément CC_ScrollBar par vous-même.
Lisez la documentation de QStyle pour plus d'informations.
Une alternative sur les mêmes lignes est d'hériter et de remplacer les tailles des éléments du contrôle complexe, de sorte que la taille des flèches est vide, et la taille de la barre de défilement est étendue pour remplir où les flèches auraient été. Ensuite, laissez le style dessiner les composants lui-même. –
Oh, belle solution en effet. Si cela fonctionne, c'est beaucoup plus simple que de réimplémenter les fonctions de dessin :) – dimsuz
Merci à vous deux, je l'ai eu avec votre aide. J'ai fini par devoir calculer où le curseur devrait être dessiné (dans drawcontrol) après qu'il ait été augmenté en longueur, basé sur sa position originale quand les flèches étaient là. Autant que j'ai pu trouver qu'il n'était pas possible de modifier la taille des éléments du contrôle complexe, cela aurait été bien. – Ayeayeron
Cela pourrait être une réponse stupide, mais serait-il utile si vous venez de spécifier la feuille de style lui-même dans le code comme argument QString
à setStyleSheet
plutôt que de maintenir un fichier séparé pour elle?
Pour utiliser setStyleSheet Qt doit toujours être configuré pour inclure la feuille de style que je ne peux pas faire. – Ayeayeron
Ah d'accord, je n'avais pas réalisé que vous vouliez dire la configuration de Qt. En fait, je n'ai même pas réalisé qu'ils étaient une option de configuration dans QT ...;) – Troubadour
Vous pouvez essayer de changer les paramètres de la palette pour votre barre de défilement (selon la couleur de la barre de défilement de la barre de défilement du designer est la couleur du "texte du bouton") ... Plus d'approche "lourde", est héritée à partir du widget barre de défilement et réimplement de la méthode de peinture, mais il y a il ressemble à une surpuissance ...
Donc, vous devez choisir petit hack vs overkill :). Bien qu'il existe peut-être une autre solution
- 1. Suppression de la barre de défilement de la liste horizontale
- 2. python Qt: barre de défilement widget principal
- 3. Suppression de la barre de défilement d'un élément de sélection
- 4. Supprimer les flèches de la barre de défilement Swing dans JScrollPane
- 5. Suppression des flèches de tri de AdvancedDataGridColumn tête
- 6. Comment éviter l'entartrage dans la barre de défilement flex
- 7. Supprimer la barre de défilement verticale, garder la barre de défilement horizontale dans iframe dans Chrome
- 8. TreeView dans la barre de défilement PreviewMouseMove
- 9. Pouvez-vous changer la largeur d'une barre de défilement (DIV de défilement) dans IE7
- 10. désactiver la barre de défilement dans IE
- 11. Barre de défilement dans la liste déroulante
- 12. barre de défilement dans mfc
- 13. Barre de défilement QScintilla
- 14. barre de défilement verticale
- 15. Barre de défilement Tbody
- 16. Modifier le comportement de la barre de défilement par défaut
- 17. qt barre de menu de la fenêtre
- 18. WPF barre de défilement
- 19. barre de défilement - Aide
- 20. Problème de la barre de défilement
- 21. CSS Problème de la barre de défilement
- 22. Personnalisation de la barre de défilement
- 23. GUI Aide de la barre de défilement
- 24. Style barre de défilement
- 25. Barre de défilement mutuelle
- 26. Afficher la barre de défilement cachée
- 27. Android Webapp masquer la barre de défilement?
- 28. UITableView défilement sous la barre de navigation
- 29. problème de barre de défilement
- 30. qt centre de la barre d'état aligné?
Vous dites que vous ne pouvez pas configurer Qt pour inclure la feuille de style. Pour moi, cela se lit embarqué. Quelles exigences avez-vous sur le curseur? Besoin d'être utilisable par la souris? Par clavier? Du tout (seulement des fentes)? – e8johan
Oui, c'est pour une utilisation intégrée. La seule façon d'effectuer la barre de défilement est avec les boutons haut et bas que je vais obtenir en tant qu'événements à partir d'un filtre d'événements. – Ayeayeron