首页 > 解决方案 > 根据比例更改 QProgressbar 块的颜色

问题描述

我正在尝试根据名为 accuracy 的变量更改 Qprogressbar 的颜色,该变量的值在 0 到 100 之间。所以基本上,如果准确度为 100,颜色应该是绿色,如果是 0,它应该变成红色,我也希望它支持值和颜色之间。我已经写下了以下代码,但它不会影响我的进度条的块颜色。我的代码的哪一部分是错误的?我感谢任何提示和帮助:)

int G = static_cast<int> (2.5 * accuracy);
int R = 255 - G;
for (G=0, R=0; G<255 && R<255; G++, R++)
{
    ui->progressBar->setStyleSheet("QProgressBar::chunk {background-color: rgb(R, G, 0);}");
}

标签: c++qtchunksqprogressbar

解决方案


"QProgressBar::chunk {background-color: rgb(R, G, 0);}":R并且G在这个字符串中不要访问变量 R 和 G;

问答和未经测试:

QString("QProgressBar::chunk {background-color: rgb(") + QString::number(R) + ", " + QString::number(G) + ", 0);}"

推荐阅读