Отключить / включить текст QCheckBox

Я работаю над примером приложения, в котором мне нужно отключить текст флажка, когда флажок не установлен, и включить его, когда установлен флажок.

Код:

if(ui->checkBox->isChecked() == true)
{
// Enable the text of the checkbox
}

else
{
// Disable the text of the checkbox
}

Я просмотрел различные статьи, но не нашел правильного решения.

0

Решение

Использовать таблицы стилей

Для всего вашего виджета:

ui->setStyleSheet(
"QCheckBox:checked {
{color: black;}
}
QCheckBox:unchecked {
{color: grey;}
}")

Редактировать:

Как уже упоминалось в комментарии, чтобы заставить его работать с пользовательскими темами, вы можете сделать так, чтобы стиль палитра:

QPalette my_palette = ui->palette()
QColor my_active_color = my_palette.color(QPalette::Active, QPalette::Text);
QColor my_disabled_color = my_palette.color(QPalette::Disabled, QPalette::Text);

QString my_style =
QString("QCheckBox:checked { {color: rgb(%1, %2, %3);} } ""QCheckBox:unchecked { {color: rgb(%4, %5, %6);}}")
.arg( my_active_color.red())
.arg( my_active_color.green())
.arg( my_active_color.blue() )
.arg( my_disabled_color.red())
.arg( my_disabled_color.green())
.arg( my_disabled_color.blue() );

ui->setStyleSheet(my_style);

Обратите внимание, что я не пробовал, и это может быть опечатка, но вы поняли идею.

1

Другие решения

Я получил решение. Вот как я этого добился:

ui->checkBox->setStyleSheet( "QCheckBox:checked{color: black;} QCheckBox:unchecked{color: grey;}");
0

По вопросам рекламы [email protected]