我想要一個垂直進度條,裏面有垂直(從上到下)文本。我想知道是否以及如何通過樣式表實現這一點。我不能改變整個應用程序的風格,或者完全改變它的部件(沒有「適用於塑料風格的解決方案)。有人能給我提供一些例子嗎?如果你知道任何其他方式來實現它,它也會有幫助。帶樣式表的QProgressBar
0
A
回答
1
建議的答案是複雜的。它可以以更簡單的方式完成(少代碼)。
首先你應該子類QProxyStyle。 這項工作應或多或少類似(覆蓋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);
}
};
這可能是我搞砸了角度,但一般的概念應該是清楚的。
注意,這是更好的方法,因爲:
- 代碼很簡單
- 你不破的風格,如果樣式將改變都應該看的填權(不使用硬編碼畫標籤)。
1
我想做到這一點的最好辦法就是要繼承QProgressBar,不使用樣式表
你有一個類似的例子在這裏與QScrollbar,希望這將有助於。)
小圓括號,如果您想將樣式表應用於僅一個組件,那麼你必須寫這樣的東西:
widgetType#widgetName
{
...
}
相關問題
- 1. 帶有URL資產的Mapnik樣式表?
- 2. 帶空行的樣式表問題
- 3. 交換jquerymobile的樣式表,帶鏈接
- 4. 帶圖像的樣式列表
- 5. 帶派生類的Qt樣式表
- 6. 帶文本樣式的下拉列表
- 7. qprogressbar qfile
- 8. 帶或不帶`.min`的樣式表參考
- 9. 帶引導的CSS樣式
- 10. 帶邊框的HTML樣式
- 11. Angular2 - 帶ng樣式的SVG
- 12. 帶有列表的樣本()
- 13. 定製QProgressBar
- 14. PySide QThread和QProgressBar
- 15. QProgressBar錯誤
- 16. MySQL諮詢QProgressBar
- 17. QProgressBar文本格式爲時間
- 18. 需要在樣式屬性中插入帶有樣式屬性的HTML表格
- 19. 沒有這樣的插槽QProgressBar :: setValue方法(const int的)
- 20. 樣式色帶控件
- 21. 絲帶樣式菜單?
- 22. nokogiri帶狀樣式屬性
- 23. CKEditor樣式列表樣式
- 24. CSS樣式不會呈現帶有樣式的離屏元素
- 25. QProgressBar中的塊的漸變
- 26. 內聯樣式表級聯樣式表
- 27. 移動樣式表與主樣式表
- 28. 多種樣式的融合表樣式
- 29. Qprogressbar停止滑動
- 30. QProgressBar問題上傳