QT进度条QProgressBar按比例展示

进度条样式代码,可以根据自己的需求修改比例。下面是展示代码;

QString QparagraphDlg::setParagraphDlg()
{
 QString strStyle = "";
 QString paragraph1End;
 QString paragraph2Str;
 QString paragraph2End;
 QString paragraph3Str;
 
 double total= 100.0;//进度条最大值(num3表示);
 double left = 70.0;//剩余部分值(paragraph3表示);
 double consume = 10.0;//消耗部分值(paragraph2表示);
 
 float num1 = (float)1 / (total  / (total - left));
 float num2 = num1-(float)1 / (total  / consume);
 float num3 = num2-0.000004;
 float num4 = num1+0.000004;
 pProgressBar->setFormat(QString::fromLocal8Bit("可用:%1%  ").arg(QString::number((1-num1)*100, 'f', 1)));
 pProgressBar->setAlignment(Qt::AlignRight | Qt::AlignVCenter);  // 对齐方式
 
 paragraph1End = paragraph1End.setNum(num3, 'f', 6);//段落一结束;
 paragraph2Str = paragraph2Str.setNum(num2, 'f', 6);//段落二开始;
 paragraph2End = paragraph2End.setNum(num1, 'f', 6);//段落二结束;
 paragraph3Str = paragraph3Str.setNum(num4, 'f', 6);//段落三开始;
 strStyle = QString("qlineargradient(spread:repeat, x1:0, y1:0, x2:1, y2:0,\
                               stop:0 rgba(163,199,216,255), stop:%1 rgba(163,199,216,255),\
          stop:%2 rgba(135,171,218,255), stop:%3 rgba(135,171,218,255),\
                               stop:%4 rgba(211,211,211, 255),stop:1 rgba(211,211,211, 255))").arg(paragraph1End).arg(paragraph2Str).arg(paragraph2End).arg(paragraph3Str);



 return strStyle;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我将根据您的要求为您提供有关自定义Qt进度条代码的详细回答。 在Qt中,您可以自定义进度条的外观和行为。以下是一些代码示例,演示如何创建自定义Qt进度条。 1. 创建自定义进度条类 在Qt中,您可以通过创建自定义进度条类来实现自定义进度条。以下是创建自定义进度条类的示例代码: ```cpp class MyProgressBar : public QProgressBar { public: MyProgressBar(QWidget *parent = 0); protected: virtual void paintEvent(QPaintEvent *event); }; ``` 在这个示例中,我们创建了一个名为 MyProgressBar 的类,它继承自 Qt 的 QProgressBar 类。我们重写了 paintEvent 函数,以便重绘进度条的外观。 2. 重写 paintEvent 函数 以下是一个示例代码,演示如何在自定义进度条中重写 paintEvent 函数: ```cpp void MyProgressBar::paintEvent(QPaintEvent *event) { QProgressBar::paintEvent(event); QPainter painter(this); QRect rect = QRect(0, 0, width(), height()); painter.fillRect(rect, Qt::gray); painter.fillRect(rect.adjusted(1, 1, -1, -1), Qt::white); painter.fillRect(rect.adjusted(1, 1, -1, -1), Qt::blue); } ``` 在这个示例中,我们首先调用 QProgressBar 类的 paintEvent 函数。然后,我们创建一个 QPainter 对象,并使用它绘制进度条。我们首先绘制灰色背景,然后绘制白色边框,最后绘制蓝色进度条。 3. 使用自定义进度条 在您创建了自定义进度条类之后,您可以将其用作常规进度条。以下是一个示例代码,演示如何在 Qt 中使用自定义进度条类: ```cpp MyProgressBar *myProgressBar = new MyProgressBar(this); myProgressBar->setRange(0, 100); myProgressBar->setValue(50); ``` 在这个示例中,我们首先创建了一个 MyProgressBar 类的实例,然后设置进度条的范围和当前值。 总结 以上是关于如何在 Qt 中创建自定义进度条的示例代码。您可以根据您的需求修改这些示例代码,以便创建出符合您想要的外观和行为的自定义进度条

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug狂人

让我们和小姐姐唠嗑可以肢愣起来

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值