QML:使用标准整数RGB值的任何方式?

时间:2016-08-17 08:37:31

标签: qt colors qml rgb rgba

我在 Windows 10 上使用 Qt 5.7 ,而且我对 QML 相对较新。我目前正在为我的应用程序添加一些颜色,让我感到震惊的是,似乎没有办法使用普通的整数RGB值(不是十六进制)来表示颜色。 (据我所知)有三种直接方式(不使用QColor的Qt C ++函数与QML代码组合)将项目设置为特定颜色:

  • Qt.rgba(...) - 我遇到了两个问题,第一个问题是使用RGB值的浮点数,第二个是奇怪的调用 - 我发现自己经常忘记我必须把Qt.放在函数前面,不用说这很烦人(但这只是我:P):

    Rectangle {
      width: 100
      height: 100
      color: Qt.rgba(0.502, 0.502, 0.502, 1)
      border.width: 1
    }
    
  • # - 我在这里遇到两个问题,第一个问题是,如果我们将Qt.rgba(...)函数与alpha函数的位置进行比较,则会出现明显的不一致(在前面,而不是像Qt.rgba(...)的最后一个参数那样在最后,第二个是十六进制的使用:

    Rectangle {
      width: 100
      height: 100
      color: "#FF808080"
      border.width: 1
    }
    
  • 颜色名称 - 如果英语是您的母语并且您熟悉Qt中可用的大量颜色名称(使用SVG color naming),这很好(也许):

    Rectangle {
      width: 100
      height: 100
      color: "grey"
      border.width: 1
    }
    

上述所有三种着色约定代表相同的颜色(RGB:128,128,128)。我真的更喜欢使用正常的整数值,因为我对它们比较熟悉。在QML中可以毫不费力地使用它们吗?

1 个答案:

答案 0 :(得分:3)

没有

建立@Gwen所说的内容,你可以定义自己的函数,它接受整数并转换为浮点数,然后在任何地方调用它。