我试图根据一个名为precision的变量来更改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);}");
}
答案 0 :(得分:1)
"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);}"
答案 1 :(得分:0)
正如user1810087回答的那样,这是我使用的最终代码,以防其他人想要做同样的事情:)
void MainWindow:: on_progressBar_valueChanged(int value)
{
G = static_cast<int>( 2.55 * value );
R = 255 - G;
QString Style = QString("QProgressBar::chunk {background-color: rgb(" +QString::number(R) + ", " + QString::number(G) + ", 0);}");
ui->progressBar->setStyleSheet(Style);
}