我不知道如何在進度條中部分改變文本的顏色,當其值接近50%時。這種效果會自動進入融合樣式進度條(下圖)。有誰知道這是如何完成的?如何使用其值更改QProgressBar文本的顏色?
7
A
回答
8
懶得寫工作示例代碼,更使得屏幕截圖。甚至沒有50個代表。 :-)
但是,這個問題有點有趣。我不知道這樣一個兩個彩色的文本可以如何完成。所以我檢查了: http://qt.gitorious.org/qt/qtbase/blobs/stable/src/widgets/styles/qfusionstyle.cpp Line 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));
}
基本上文本被繪製兩次到同一個矩形。每次都有適當的裁剪。如果你知道如何,很容易。 :-)
-3
您可以在容器控件使用樣式表:
myMainWidget.setStyleSheet(QString("QProgressBar {color: red}"));
+0
這是不正確的... –
0
從我的觀點來看,最好的,而且可能是最簡單,方式做到這一點是改變了QProgressBar插件的托盤:
QPalette palette = progressBar->palette()
palette.setColor(QPalette::Text, textColor)
palette.setColor(QPalette::HighlightedText, textColor)
progressBar->setPalette(palette)
相關問題
- 1. 更改QProgressbar的顏色()
- 2. 更改QProgressBar的顏色
- 3. 如何更改li中文本的顏色並使其覆蓋?
- 4. 如何更改UISegmentedControl值更改時的文本顏色?
- 5. 更改文本顏色使用的WebPack
- 6. 如何更改QxtLabel的文本顏色
- 7. 如何更改文本顏色的IFrame
- 8. 如何更改javascript文本的顏色?
- 9. 如何更改JButton的文本顏色
- 10. 使用滑塊更改文本顏色
- 11. 如何更改文本顏色代碼?
- 12. PhpStorm:我如何更改文本顏色
- 13. 如何更改disqus文本顏色
- 14. 如何更改CCLabelBMFont文本顏色
- 15. 如何更改tinymce textarea文本顏色
- 16. 如何更改JProgressBar文本顏色
- 17. 如何更改文本顏色在AlertDialog
- 18. 如何更改ActionBar Spinner文本顏色?
- 19. 如何更改微調文本顏色
- 20. 如何更改組框文本顏色?
- 21. 如何更改easyGUI python文本顏色
- 22. 如何更改UI文本顏色
- 23. 如何更改md-select文本顏色?
- 24. 如何更改RibbonStatusBarPane文本顏色?
- 25. 根據值更改文本顏色
- 26. 如何更改UIActivityViewController中的文本顏色和圖標顏色
- 27. 如何將文本標籤的顏色更改爲UITableViewCellStyleValue1顏色
- 28. 如何根據其值改變div的文本顏色?
- 29. 如何使用flash動作腳本2更改文本顏色?
- 30. 如何更改<TD>使用javascript的forecolor /文本顏色和boder顏色
你有什麼問題的實施,所描述在提供的鏈接? –
所以你建議有人寫代碼而不是你?樣式表不會幫助你。學習Qt的基礎知識是一個很好的觀點。 –
問題是什麼?任何人都知道它是如何完成的。最有可能是編寫Fusion風格的人。但是你**想知道什麼? – Greenflow