0

我一直在开发一个 GUI,并且遇到了一个问题(或可能的错误)QCheckBox

在我的表单中添加一个 QCheckBox 组件,编译和运行它没有问题。但是,单击复选框时,不会显示任何可见的反馈。

我为信号添加了一个侦听器,clicked(bool)它在调试输出中用于显示当前状态,该状态确实发生了变化。

复选框上仅更改了 3 个设置:

  1. 组件文本
  2. 组件名称
  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"

如果需要任何其他项目信息,请随时发表评论

4

1 回答 1

1

这是解决此“缺少复选/标记”问题的可能解决方案。

我实现了从这个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)将是您想要的背景颜色,例如您的窗口背景颜色。

,指激活复选框的背景(白框背景QPallete::ActiveQPalette::base

并且QPalette::Button指的是“实际背景”(在复选框和复选框文本后面)

希望这可以帮助!

于 2017-01-23T08:40:40.023 回答