根据比例更改 QProgressbar 块的颜色
Changing QProgressbar chunk's color according to a scale
我正在尝试根据名为 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);}");
}
"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);}"
正如 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);
}
我正在尝试根据名为 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);}");
}
"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);}"
正如 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);
}