Я использую Qt 5.7 в Windows 10 и новичок в QML. В настоящее время я добавляю некоторые цвета в свое приложение, и меня поразило, что, похоже, нет способа использовать простые целочисленные значения RGB (не шестнадцатеричные) для цветов. Есть (насколько мне известно) три прямых способа (без использования функций Qt C++ QColor
в сочетании с кодом 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):
Rectangle { width: 100 height: 100 color: "grey" border.width: 1 }
Все три приведенных выше соглашения о цвете представляют один и тот же цвет (RGB
: 128, 128, 128). Я действительно предпочитаю использовать обычные целочисленные значения, так как я лучше знаком с ними. Можно ли использовать их без каких-либо дополнительных усилий в QML?
color: Qt.rgba(128/255., 128/255., 128/255., 1)
стоит попробовать. - person Gwen   schedule 17.08.2016