Изменение цвета блока QProgressbar в соответствии с масштабом - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь изменить цвет 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);}");
}

Ответы [ 2 ]

1 голос
/ 23 октября 2019

"QProgressBar::chunk {background-color: rgb(R, G, 0);}": R и G в этой строке не имеют доступа к переменным R и G;

Q & D и не проверено:

QString("QProgressBar::chunk {background-color: rgb(") + QString::number(R) + ", " + QString::number(G) + ", 0);}"
0 голосов
/ 23 октября 2019

Как ответил пользователь 1810087, это последний код, который я использовал на тот случай, если кто-то захочет сделать то же самое :)

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);

}
...