gpt4 book ai didi

c++ - 带有样式表的 QProgressBar

转载 作者:行者123 更新时间:2023-11-28 02:45:22 26 4
gpt4 key购买 nike

我想要一个垂直进度条,里面有垂直(从上到下)的文本。我想知道是否以及如何使用样式表来实现这一点。我无法更改整个应用程序的样式或完全更改小部件的样式(没有“应用可用的塑料样式解决方案”)。有人可以给我提供一些示例吗?如果您知道实现此目的的任何其他方法,它也会有所帮助.

最佳答案

建议的答案太复杂了。它可以以更简单的方式(更少的代码)完成。

首先你应该继承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);
}
};

我可能搞砸了 Angular ,但一般概念应该很清楚。

请注意,这是更好的方法,因为:

  • 代码简单
  • 不要破坏样式,如果要更改样式,所有内容都应该正确填充(您没有使用标签的硬编码绘画)。

关于c++ - 带有样式表的 QProgressBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24613188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com