任何一个方便的复选框,但也不是灰色的(几乎不可见).
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);
Run Code Online (Sandbox Code Playgroud)所以我最好的方法是使用启用/禁用并接受灰色样式.
-------编辑-------
在样式表示例之后,我希望我可以设置禁用复选框的样式,例如启用的复选框.到目前为止失败了.更具体:更改示例中的图标对我来说不起作用,可能是因为我使用的是Windows,并且路径下的图标不可用,如示例所示.
PS:相关,但这里没有答案
小智 14
以下是我的代码:
this->ui->cb_RealWorld->setAttribute(Qt::WA_TransparentForMouseEvents);
this->ui->cb_RealWorld->setFocusPolicy(Qt::NoFocus);
Run Code Online (Sandbox Code Playgroud)
这是Devopia的解决方案:
void SetReadOnly(QCheckBox* checkBox, bool readOnly)
{
checkBox->setAttribute(Qt::WA_TransparentForMouseEvents, readOnly);
checkBox->setFocusPolicy(readOnly ? Qt::NoFocus : Qt::StrongFocus);
}
Run Code Online (Sandbox Code Playgroud)