Лучший и рекомендуемый способ - использовать Таблицу стилей Qt .
Чтобы изменить цвет текста и цвет фона QLabel
, я бы сделал следующее:
QLabel* pLabel = new QLabel;
pLabel->setStyleSheet("QLabel { background-color : red; color : blue; }");
Вы также можете избежать использования таблиц стилей Qt и изменить цвета QPalette
вашего QLabel
, но вы можете получить разные результаты на разных платформах и / или стилях.
Как указано в документации Qt:
Использование QPalette не гарантирует работы для всех стилей, потому что авторы стилей ограничены руководящими принципами различных платформ и собственным механизмом тем.
Но вы можете сделать что-то вроде этого:
QPalette palette = ui->pLabel->palette();
palette.setColor(ui->pLabel->backgroundRole(), Qt::yellow);
palette.setColor(ui->pLabel->foregroundRole(), Qt::yellow);
ui->pLabel->setPalette(palette);
Но, как я уже сказал, я настоятельно рекомендую не использовать палитру и перейти к таблице стилей Qt.
Лучший способ установить любую функцию относительно цветов любого виджета - использовать QPalette.
И самый простой способ найти то, что вы ищете, - это открыть Qt Designer и установить палитру QLabel и проверить сгенерированный код.