有没有一种好的方法可以使复选框只读但不会变灰(难以看见)。
- 我使用了
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?