В общем имею цель добавить в программу qProgressBar но с возможностью его изменения цвета и надписи текста в нём элемент установлен в ui через дизайнер.
Попробовал так :
ui->pB_DD1->setFormat("% неисправен");
QPalette p = palette();
p.setColor(QPalette::Highlight, QColor(Qt::red));
ui->pB_DD1->setPalette(p);
Ошибок не выводит но при этом ни чего не меняется.
Что я делаю не так ??
Вот ещё вариант :
ui->progressBar->setFormat("% неисправен");
QPalette p = palette();
QPalette pal = ui->progressBar->palette();
pal.setColor(QPalette::Highlight, QColor(Qt::red));
ui->progressBar->setPalette(pal);
Не сработало
можно через CSS -стили :
ui->progressBar->setStyleSheet("*{background-color: blue; border: 1px solid black; }");
ui->progressBar->setStyleSheet("*{color: rgb(255, 255, 0); background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(100,0,0,255), stop: 1 rgba(200,0,0,255)); border: 2px solid grey; border-radius: 5px;}");
ui->progressBar->setStyleSheet("*::chunk {background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(0,200,255,255), stop: 1 rgba(0,0,255,255));}"); // это градиент
НО от такого метода есть проблемма нет полной аналогии с предшественником (моя цель сменить только цвет линии).
В общем я сделал через реализацию CSS-стиля , вот код :
// Конопка "нажимаем"
void MainWindow::on_pushButton_clicked()
{
ui->progressBar->setFormat(" неисправен");
ui->progressBar->setValue(1000);
ui->progressBar->setStyleSheet("QProgressBar{border: 1px solid transparent;text-align: center;"
"color:rgba(255,255,250,255);"
"border-radius: 5px;"
"border-width: 3px;"
"border-image: 9,2,5,2; "
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(200, 200, 200, 200), stop:1 rgba(0, 0, 0, 200));"
"}"
"QProgressBar::chunk {background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(255,200,0,255), stop: 1 rgba(255,0,0,255));}");
}
// кнопка "стукаем"
void MainWindow::on_pushButton_2_clicked()
{
ui->progressBar->setStyleSheet(QString()); // возвращаем "стартовый" стиль
ui->progressBar->setValue(500);
ui->progressBar->setFormat(QString("%p [кг/см2]"));
}
Старт запуск программы
после нажатия кнопки "нажимаем"
после нажатия кнопки "стукаем"
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Дано целое число nТребуется найти количество четных цифр в записи этого числа отличных от нуля
Не совсем понятно почему в классе наследнике нельзя переопределить метод и изменить возвращаемый тип