2013-11-25 2 views
2

Я хочу указать ширину и высоту текста, чтобы шрифтSizeMode: Text.Fit работал. Но после этого якоря текста не будут работать. Как такое могло произойти?Почему ширина/высота текста и якоря заключены в QML?

Rectangle { 
    width: 360; height: 360 
    Rectangle { 
     width: parent.width/3; height: parent.height/6 
     anchors.centerIn: parent 
     border{ color: "red"; width: 5 } 
     Text { 
      anchors { 
       centerIn: parent 
//    verticalCenter: parent.verticalCenter 
//    horizontalCenter: parent.horizontalCenter 
      } 

      width: parent.width 
      height: parent.height 
      font.pixelSize: 50 
      fontSizeMode: Text.Fit 
      text: "Hello, world!" 
     } 
    } 
} 

ответ

3

Ну, они работают нормально. Но поскольку вы устанавливаете ширину и высоту, привязка centrerIn ничего не меняет, так как текст уже находится в середине родителя. Вы должны установить выравнивание, чтобы получить надлежащий эффект:

Text { 
    anchors.fill: parent 
    font.pixelSize: 100 
    fontSizeMode: Text.Fit 
    horizontalAlignment: Text.AlignHCenter 
    verticalAlignment: Text.AlignVCenter 
    text: "Hello, world!" 
}