Qt复选框/工具按钮,带有自定义/不同的检查/未选中的图标



我需要有一个复选框,例如选中和未选中状态使用自定义图形的控件。我已经查看了QToolButton和QCheckBox以及QIcon的所有文档,但找不到任何可以满足我想要的组合。

我只想在未选中状态下使用一个图标(实际上是 pixmap),而在选中状态下使用另一个图标。

这感觉应该很容易,但解决方案(缺少自定义控件)让我无法找到。


我也尝试过使用样式表,并且QToolButton:checked使用background-image种工作,但我无法获得正确的布局 - 它不像图标那样定位/大小。

使用 :

:指标子项。 下面的代码对我来说效果很好...

 QCheckBox::indicator {
     width: 18px;
     height: 18px;
 }
  QCheckBox::indicator:checked
  {
    image: url(.../Checkbox_checked_normal.png);
  }
  QCheckBox::indicator:unchecked
  {
    image: url(.../Checkbox_unchecked_normal.png);
  }
  QCheckBox::indicator:checked:hover
  {
    image: url(.../Checkbox_checked_hovered.png);
  }
  QCheckBox::indicator:unchecked:hover
  {
    image: url(.../Checkbox_unchecked_hovered.png);
  }
  QCheckBox::indicator:checked:pressed
  {
    image: url(.../Checkbox_checked_pressed.png);
  }
  QCheckBox::indicator:unchecked:pressed
  {
    image: url(.../Checkbox_unchecked_pressed.png);
  }
  QCheckBox::indicator:checked:disabled
  {
    image: url(.../Checkbox_checked_disabled.png);
  }
  QCheckBox::indicator:unchecked:disabled
  {
    image: url(.../Checkbox_unchecked_disabled.png);
  }

这必须作为样式表输入。通过设计编辑器执行此操作,方法是右键单击复选框并选择"更改样式表..."。

您还可以包含并使用您的图标作为资源:

QCheckBox::indicator:checked {image: url(:/circle-green.png);}
QCheckBox::indicator:unchecked {image: url(:/circle-red.png);}

最新更新