2017-02-07 10 views
1

Когда я установил enabled на ComboBox, например, он получает «greyed out». Насколько я могу судить, он рисует слой над компонентом с определенной непрозрачностью, поэтому первоначальный дизайн виден, но становится немного бледным. Как я могу настроить этот эффект?Как настроить стиль компонента QtQuick 2 при включении является ложным

Я попытался изменить цвет фона компонентов, основываясь на состоянии собственности enabled, но это не помогло. Например, я установил свой цвет фона красным, когда свойство enabled было ложным, но оно не стало красным, оно стало больше напоминать светло-красный из-за наложения того, что я описывал выше.

Простой пример кода:

ComboBox { 
    id: control 
    enabled: false 

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

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

Какая версия Qt вы используете? Я считаю, что это было зафиксировано в Qt 5.7.1. – jpnurmi

+1

Эта конкретная фиксация, которая приземлилась на Qt 5.7.1, перенесла оператор непрозрачности из корневого элемента элемента управления в строительные блоки, поэтому теперь, если вы замените фон, вы полностью контролируете его непрозрачность: http: //code.qt .io/cgit/qt/qtquickcontrols2.git/commit/src/import/controls/ComboBox.qml? id = f6acc98f3a96ab6cafedfe2a3f097a1974abad16 – jpnurmi

+0

PS. Имя свойства «включено». – jpnurmi

ответ

1

Итак, как @jpnurmi предложил источник моей проблемы была исправлена ​​в Qt 5.7.1.

ComboBox { 
    id: control 
    enabled: false 

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

    opacity: 1 // * 

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

* = Добавление этого здесь, будет перезаписывать поведение непрозрачности по умолчанию, а затем он может управляться вручную с помощью фонового компонента, например.

 Смежные вопросы

  • Нет связанных вопросов^_^