Non so come modificare il colore del testo parzialmente nella barra di avanzamento quando il suo valore diventa quasi del 50%. Questo effetto viene automaticamente nella barra di avanzamento dello stile di fusione (immagine sotto). Qualcuno sa come è fatto?Come cambiare il colore del testo di un QProgressBar con il suo valore?
risposta
Troppo pigro per scrivere lavorare codice di esempio, e tanto meno fare uno screenshot. Neanche per 50 ripetizioni. :-)
Tuttavia, la domanda era piuttosto interessante. Non avevo idea di come un testo così colorato potesse essere fatto. Quindi ho controllato: http://qt.gitorious.org/qt/qtbase/blobs/stable/src/widgets/styles/qfusionstyle.cpp Riga 1450ff (http://qt.gitorious.org/qt/qtbase/blobs/stable/src/widgets/styles/qfusionstyle.cpp#line1450).
QRegion rightRect = rect;
rightRect = rightRect.subtracted(leftRect);
painter->setClipRegion(rightRect);
painter->setPen(flip ? alternateTextColor : textColor);
painter->drawText(rect,
bar->text,
QTextOption(Qt::AlignAbsolute|
Qt::AlignHCenter|
Qt::AlignVCenter));
if (!leftRect.isNull())
{
painter->setPen(flip ? textColor : alternateTextColor);
painter->setClipRect(leftRect);
painter->drawText(rect,
bar->text,
QTextOption(Qt::AlignAbsolute|
Qt::AlignHCenter|
Qt::AlignVCenter));
}
Fondamentalmente il testo viene disegnato due volte nello stesso rettangolo. Ogni volta con un ritaglio appropriato. Facile se sai come. :-)
È possibile utilizzare fogli di stile sul contenitore Widget:
myMainWidget.setStyleSheet(QString("QProgressBar {color: red}"));
Questo non è corretto ... –
Dal mio punto di vista il migliore, e probabilmente il più facile, modo per farlo è quello di cambiare il pallet per il widget QProgressBar:
QPalette palette = progressBar->palette()
palette.setColor(QPalette::Text, textColor)
palette.setColor(QPalette::HighlightedText, textColor)
progressBar->setPalette(palette)
- 1. Cambia il colore di una QProgressBar
- 2. Come cambiare il colore del testo di un JButton
- 3. Cambiare il colore di un <select> a seconda del suo valore - CSS solo
- 4. Cambiare il colore del testo in Eclipse
- 5. Come posso cambiare il colore del testo con jQuery?
- 6. Impossibile cambiare il colore del testo UILabel
- 7. Cambiare il colore di selezione del testo usando i CSS?
- 8. Come cambiare il colore del testo della parte di TextView?
- 9. come cambiare il colore del testo suggerimento di textinputlayout
- 10. Cambiare il colore di un testo in una JLabel
- 11. Come posso cambiare il colore del testo in IFrame
- 12. Come cambiare il colore di un JSeparator?
- 13. Come modificare il colore del bordo di input, con jQuery, a seconda del suo valore?
- 14. Come cambiare il colore del testo selezionato In Internet Explorer?
- 15. Come cambiare il colore del tasto ttk
- 16. Come cambiare il colore del testo in TextField javafx?
- 17. Come Cambiare il colore del testo segnaposto - iOS
- 18. Cambiare il colore del testo di Google Place Picker Appbar
- 19. cambiare il colore del testo di una UILabel
- 20. Rendi il colore del link uguale al colore del testo senza conoscere il colore del testo?
- 21. come cambiare il colore di un QGraphicsTextItem
- 22. Cambiare il colore del testo nelle caselle SELECT
- 23. Graphviz: Come cambiare il colore del bordo
- 24. Come posso cambiare il colore di <label> quando il suo ingresso è disabilitato?
- 25. Posso cambiare il colore del pulsante Bootstrap?
- 26. Cambiare il colore della matplotlib bar istogramma bin selezionato, dato il suo valore
- 27. Come cambiare il colore del testo per il link a TR elemento con i CSS
- 28. Modifica testo nel QProgressBar
- 29. Cambiare il valore del testo di input AngularJS utilizzando javascript
- 30. come cambiare il colore dell'etichetta di testo QCheckBox in Qt?
Che problemi hai con implementazione, che descriveva nel link fornito? –
Quindi tu proponi qualcuno a scrivere codice al posto tuo? I fogli di stile non ti aiuteranno. È un buon punto per imparare le basi di Qt. –
Qual è la domanda? Qualcuno sa per certo come è fatto. Molto probabilmente colui che ha scritto lo stile Fusion. Ma cosa vuoi ** tu ** vuoi sapere? – Greenflow