单击时qcheckbox不更改选中状态
qcheckbox not changing checked state when clicked on
我一直在开发一个 GUI,运行 遇到一个问题(或可能的错误)QCheckBox
。
将 QCheckBox 组件添加到我的表单,编译和 运行ning 它没有问题。但是,当单击复选框时,没有显示任何可见的反馈。
我为 clicked(bool)
信号添加了一个侦听器它用于调试输出以显示当前状态,它确实发生了变化。
复选框上仅更改了 3 个设置:
- 组件文本
- 组件名称
- 组件已检查状态:已检查。
我在页面上添加了另一个复选框,重新编译并 运行 它没有做任何更改。同样,这个新复选框不会响应更改。
此外,我创建了一个新项目,只添加了一个复选框,编译并 运行 它。显示状态更改没有问题。一定是我的项目有问题。
stateChanged(int)
和clicked(bool)
信号的输出:(qDebug()
输出)
QCHECKBOX STATE (stateChanged): "2"
QCHECKBOX STATE (clicked): "checked"
QCHECKBOX STATE (stateChanged): "0"
QCHECKBOX STATE (clicked): "unchecked"
QCHECKBOX STATE (stateChanged): "2"
QCHECKBOX STATE (clicked): "checked"
QCHECKBOX STATE (stateChanged): "0"
QCHECKBOX STATE (clicked): "unchecked"
如果需要任何其他项目信息,请随时发表评论
这是解决此 "missing check/mark" 问题的 可能 解决方案。
我实施了从这个 qt form post 中得到的 CSS "indicator" 解决方案,这是有问题的。
解决方案来源:
示例实现:
QPalette p = ui->checkBox->palette();
p.setColor(QPalette::Active, QPalette::Base, QColor(255, 255, 255));
p.setColor(QPalette::Button, QColor(255, 255, 255));
ui->checkBox->setAutoFillBackground(true);
ui->checkBox->setPalette(p);
QColor(255, 255, 255)
将是您想要的背景颜色,例如你的 window 背景颜色。
QPallete::Active
,QPalette::base
指勾选框的背景(白框背景)
并且 QPalette::Button
指的是 "actual background" (在复选框和复选框文本后面)
希望对您有所帮助!
我一直在开发一个 GUI,运行 遇到一个问题(或可能的错误)QCheckBox
。
将 QCheckBox 组件添加到我的表单,编译和 运行ning 它没有问题。但是,当单击复选框时,没有显示任何可见的反馈。
我为 clicked(bool)
信号添加了一个侦听器它用于调试输出以显示当前状态,它确实发生了变化。
复选框上仅更改了 3 个设置:
- 组件文本
- 组件名称
- 组件已检查状态:已检查。
我在页面上添加了另一个复选框,重新编译并 运行 它没有做任何更改。同样,这个新复选框不会响应更改。
此外,我创建了一个新项目,只添加了一个复选框,编译并 运行 它。显示状态更改没有问题。一定是我的项目有问题。
stateChanged(int)
和clicked(bool)
信号的输出:(qDebug()
输出)
QCHECKBOX STATE (stateChanged): "2"
QCHECKBOX STATE (clicked): "checked"
QCHECKBOX STATE (stateChanged): "0"
QCHECKBOX STATE (clicked): "unchecked"
QCHECKBOX STATE (stateChanged): "2"
QCHECKBOX STATE (clicked): "checked"
QCHECKBOX STATE (stateChanged): "0"
QCHECKBOX STATE (clicked): "unchecked"
如果需要任何其他项目信息,请随时发表评论
这是解决此 "missing check/mark" 问题的 可能 解决方案。
我实施了从这个 qt form post 中得到的 CSS "indicator" 解决方案,这是有问题的。
解决方案来源:
示例实现:
QPalette p = ui->checkBox->palette();
p.setColor(QPalette::Active, QPalette::Base, QColor(255, 255, 255));
p.setColor(QPalette::Button, QColor(255, 255, 255));
ui->checkBox->setAutoFillBackground(true);
ui->checkBox->setPalette(p);
QColor(255, 255, 255)
将是您想要的背景颜色,例如你的 window 背景颜色。
QPallete::Active
,QPalette::base
指勾选框的背景(白框背景)
并且 QPalette::Button
指的是 "actual background" (在复选框和复选框文本后面)
希望对您有所帮助!