Любой хороший способ сделать флажок только для чтения, но также не серый (едва видимый)
setEnabled(bool)
который работает, но флажок затемнен и едва читаемCheckBox
учебный класс.setCheckable
тоже не работает, вообще не позволяет установить проверенное состояние:
cb = this->ui->cb_RealWorld->isCheckable();
this->ui->cb_RealWorld->setCheckable(true);
this->ui->cb_RealWorld->setChecked(someValue);
this->ui->cb_RealWorld->setCheckable(cb);
Поэтому лучшее, что у меня есть, — это включить / отключить и принять стиль, выделенный серым цветом.
——- Редактировать ——-
После примеры таблиц стилей Я надеялся, что смогу установить стиль отключенного флажка, как у включенного. Не удалось до сих пор, чтобы сделать это. Более конкретно: изменение значка, как в Примеры не работает для меня, может быть, потому что я использую Windows и значки не доступны по пути, как в примерах.
PS: Связано, но ответа здесь нет
Отключение QCheckbox хитрым способом
Qt — Как отключить QCheckBox при сохранении проверенного состояния?
Следуя ниже мой код:
this->ui->cb_RealWorld->setAttribute(Qt::WA_TransparentForMouseEvents);
this->ui->cb_RealWorld->setFocusPolicy(Qt::NoFocus);
Это решение Девопии как функция:
void SetReadOnly(QCheckBox* checkBox, bool readOnly)
{
checkBox->setAttribute(Qt::WA_TransparentForMouseEvents, readOnly);
checkBox->setFocusPolicy(readOnly ? Qt::NoFocus : Qt::StrongFocus);
}