2014-10-14 3 views
1

Я хочу сделать только непрозрачность на моем прямоугольнике. Но текст также становится прозрачным. Как я могу установить только фон.QML Прямоугольник непрозрачность только цвет

Rectangle { 
       id: button 
       color: "black" 
       opacity: 0.3 
       width: parent.width 
       height: 35 

        Text { 
         anchors.centerIn: parent 
         text: qsTr("text") 
         color: "white" 
         font.pixelSize: 25 
         } 
      } 

ответ

7

Это объясняется в documentation for opacity:

Если это свойство установлено, указанная непрозрачность также применяется индивидуальна для дочерних элементов. В некоторых случаях это может иметь непреднамеренный эффект. Например, во втором наборе прямоугольников внизу красный прямоугольник задал непрозрачность 0,5, что влияет на непрозрачность его голубого дочернего прямоугольника, даже если дочерний объект не указал непрозрачность.

Вы можете либо переместить Text деталь вне:

Rectangle { 
    id: button 
    color: "black" 
    opacity: 0.3 
    width: parent.width 
    height: 35 
} 

Text { 
    anchors.centerIn: button 
    text: qsTr("text") 
    color: "white" 
    font.pixelSize: 25 
} 

Или дать Rectangle прозрачный цвет вместо изменения непрозрачности:

Rectangle { 
    id: button 
    color: "#33000000" 
    width: parent.width 
    height: 35 

    Text { 
     anchors.centerIn: parent 
     text: qsTr("text") 
     color: "white" 
     font.pixelSize: 25 
    } 
} 
+0

Perfect. Я проверю это. Большое спасибо. Мысль, что текст musst включает в прямоугольник. – Matthias

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