Je voudrais avoir une barre de progression verticale avec du texte vertical (de haut en bas) à l'intérieur. Je me demande si et comment cela peut-il être réalisé avec des feuilles de style. Je ne peux pas changer le style de l'application entière ou la changer complètement pour le widget (pas de "appliquer une solution de style plastique disponible.) Quelqu'un pourrait-il me donner un exemple? Si vous connaissez un autre moyen d'y parvenir, il sera utile aussi .QProgressBar avec StyleSheet
0
A
Répondre
1
La réponse proposée est compliquée. Cela peut être fait de manière beaucoup plus simple (moins de code).
Tout d'abord vous devriez sous-classe QProxyStyle. Cela devrait être fait plus ou moins comme ça (remplacer drawControl):
class MyProxyStyle : public QProxyStyle
{
public:
void QStyle::drawControl(ControlElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const
{
if (element == CE_ProgressBarLabel) {
// create coppy of style option:
QStyleOptionProgressBar op(*static_cast<QStyleOptionProgressBar*>(option));
// prepare style option for rotation
op.rect = QTransform().rotate(-90).mapRect(op.rect);
// optional: op.orientation = (op.orientation==Qt::Horizontal)?Qt::Vertical:Qt::Horizontal;
painter->rotate(90); // rotate painter
QProxyStyle::drawControl(element, &op, painter, widget);
painter->rotate(-90); // restore painter state - its a must
return;
}
QProxyStyle::drawControl(element, option, painter, widget);
}
};
Il est possible que je l'ai foiré avec des angles, mais concept général devrait être clair.
Notez que ceci est bien meilleure approche depuis:
-
Code
- est simple
- vous ne cassez pas le style, si le style sera changé tout devrait regarder un droit de remplissage (vous n'utilisez pas la peinture codée en dur d'étiquette).
1
Je pense que la meilleure façon de le faire est juste de sous-classe QProgressBar, ne pas utiliser stylesheet Vous
ont un exemple similaire ici avec QScrollBar, espérons que cela vous aidera;.)
Petite parenthèse, si vous souhaitez appliquer une feuille de style à un seul composant, yo vous devez écrire quelque chose comme ceci:
widgetType#widgetName
{
...
}
Questions connexes
- 1. stylesheet mobile interférer avec les principaux stylesheet
- 2. QProgressBar problème avec le téléchargement
- 3. QProgressBar Erreur
- 4. qprogressbar qfile
- 5. XslTransform avec xml-stylesheet
- 6. QProgressbar et QNetworkReply signaux
- 7. PySide QThread et QProgressBar
- 8. Qprogressbar stop glissant
- 9. MySQL consulter dans QProgressBar
- 10. QT: Texte d'affichage QProgressBar
- 11. Comment afficher QProgressBar en douceur?
- 12. dynamic stylesheet
- 13. Phantom Stylesheet
- 14. Stylesheet en conflit avec style jquery ui
- 15. Définir une icône dans QMenu avec Stylesheet?
- 16. Changement de styleSheet
- 17. MS Word to Stylesheet
- 18. webbrowser pas rafraîchissant stylesheet
- 19. Dégradé pour les blocs dans QProgressBar
- 20. Comment ajouter un QProgressBar à un QMenuBar?
- 21. XSL Stylesheet besoin d'aide
- 22. React Native External Stylesheet
- 23. opéra Drupal conditionnel stylesheet
- 24. extraire stylesheet studio visuel
- 25. Drupal Cache & Stylesheet Changer
- 26. Get Stylesheet Règle Javascript/jQuery
- 27. CSS [si IE7] dans StyleSheet?
- 28. Chrome obtenir "agent utilisateur stylesheet"
- 29. Support TYPO3 multilingue (RTL Stylesheet)
- 30. CKEditor - Stylesheet Parser - Sélecteurs valides