ID заголовка QML недоступно - PullRequest
0 голосов
/ 30 января 2020
import Game 1.0

GridView {
    id: root
    model: GameboardModel{

    }
    header:
        Rectangle {
        id: headerId
        color: "lightgreen"
        height: 50
        Text{
            text: "header"
            color:"blue"
        }   
    }
    cellHeight: (height-headerId.height)/root.model.dimension
    cellWidth: width/root.model.dimension

}

Как я могу получить высоту свойства из заголовка? headerId.height не работает.

Первое изображение отображает проблему. GameBoard не заполнен прямоугольниками.

Вкл. второе изображение пример правильного поведения, работа в этом случае (высота-50) / root .model.dimension

Цвет заголовка белый, но в свойстве цвет светло-зеленый. Почему отображается белый цвет.

1 Ответ

0 голосов
/ 02 февраля 2020

Вы должны указать ширину и высоту для GridView, а также ширину для объекта заголовка Rectangle.

Наконец, вместо headerId, используйте root .header для доступа к нему.

   import Game 1.0

    GridView {
        width: parent.width
        height: parent.height
        id: root
        model: GameboardModel{

        }
        header:
            Rectangle {
            id: headerId
            color: "lightgreen"
            height: 50
            width: parent.width
            Text{
                text: "header"
                color:"blue"
            }   
        }
        cellHeight: (height-root.header.height)/root.model.dimension
        cellWidth: width/root.model.dimension

    }

Вы также можете создать псевдоним свойства, который указывает headerId на root .header в контексте root

 GridView {

    property alias headerId: root.header
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...