如何在 enable 为 false 时自定义 QtQuick 2 组件样式

How to customize a QtQuick 2 component style while enable is false

例如,当我在 ComboBox 上设置 enabled 属性 时,它会得到 "greyed out"。据我所知,它在组件上方绘制了一个具有一定不透明度的层,因此原始设计可见但略微褪色。我该如何调整这种效果?

我尝试根据 enabled 属性 的状态更改我的组件背景颜色,但这没有帮助。例如,我将我的背景颜色设置为红色,当 enabled 属性 为假时,但它没有变成红色,由于我上面描述的覆盖,它变得更像浅红色.

一个简单的代码示例:

ComboBox {
  id: control
  enabled: false

  model: ["First", "Second", "Third"]

  background: Rectangle {
    color: control.enabled ? "transparent" : "red"
  }
}

正如@jpnurmi 所建议的那样,我的问题根源已在 Qt 5.7.1 中修复。

ComboBox {
  id: control
  enabled: false

  model: ["First", "Second", "Third"]

  opacity: 1 // *

  background: Rectangle {
    color: control.enabled ? "transparent" : "red"
  }
}

* = 在这里添加,将覆盖默认的不透明度行为,然后可以通过后台组件手动控制。