我一直在开发GUI,并遇到QCheckBox
的问题(或可能的错误)。
将QCheckBox组件添加到表单中,编译并运行它没有问题。但是,单击复选框时,不会显示任何可见的反馈。
我为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"
如果需要任何其他项目信息,请随时发表评论
答案 0 :(得分:1)
这是一个可能的解决方案,用于解决此问题"缺少检查/标记"问题。
我实施了CSS"指标"我从qt form post获得的解决方案是有问题的。
解决方案来源:
示例实施:
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)
将是您想要的背景颜色,例如你的窗口背景颜色。
QPallete::Active
,QPalette::base
是指有效复选框的背景(白框背景)
而QPalette::Button
指的是"实际背景" (在复选框和复选框文本后面)
希望这有帮助!