Russian Qt Forum

Qt => Qt Quick => Тема начата: OKTA от Июль 21, 2012, 12:44



Название: QML warnings
Отправлено: OKTA от Июль 21, 2012, 12:44
Товарищи! Кто-нибудь знает, как отключить сабж? А то миллиард warnings, типа
Код:
QML Row: Cannot specify left, right, horizontalCenter, fill or centerIn anchors for items inside Row
, исправляя которые все перестает работать)))


Название: Re: QML warnings
Отправлено: mutineer от Июль 21, 2012, 20:17
Какбе нельзя у детей Row выставлять горизонтальные привязки. Делай подругому


Название: Re: QML warnings
Отправлено: OKTA от Июль 21, 2012, 20:49
Какбе без них не работает  ???


Название: Re: QML warnings
Отправлено: mutineer от Июль 21, 2012, 20:51
Значит ты пытаешься реализовать свою идею неправильно, либо QML еще не готов к такому. Расскажи что хочешь сделать, покажи код, может есть другие способы
Row сам располагает элементы по горизонтали, поэтому и не дает ставить привязки горизонтальные


Название: Re: QML warnings
Отправлено: OKTA от Июль 21, 2012, 22:14
Ну вот грубый пример. Якорь работает и дает менять margin, но выдается ошибка эта.
Код:
import QtQuick 1.0

    Row {
        id: row1
        width: 400
        height: 200

        Rectangle {
            id: rectangle1
            x: 49
            y: 37
            width: 115
            height: 127
            color: "red"
        }

        Rectangle {
            id: rectangle2
            y: 1
            width: 100
            height: 100
            color: "cyan"
            anchors.left: rectangle1.right
            anchors.leftMargin: 20
        }
    }



Название: Re: QML warnings
Отправлено: mutineer от Июль 21, 2012, 22:58
А зачем тебе якорь вообще? Row и без этого пристыкует rectangle2 к rectangle1, расстояние между ними задается при помощи spacing.
А если сам хочешь их друг к другу привязывать, то зачем Row?

Row нужен когда тебе надо расположить элементы горизонтально один за другим, но при этом ты не хочешь руками задавать их позиции. в приведенном примере Row абсолютно бесполезен и не нужен


Название: Re: QML warnings
Отправлено: OKTA от Июль 22, 2012, 10:14
А если элементов в Row больше двух и самих Row несколько? Как еще можно манипулировать такими контейнерами, точнее связями между ними (теми же якорями)?


Название: Re: QML warnings
Отправлено: mutineer от Июль 22, 2012, 11:38
Какой-то абстрактный вопрос. Если елементов в Row больше, то Row все равно разместит их один за другим по горизонтали

Если ты хочешь распологать их все сам (задавая x, y, привязки), то Row не нужен.
Если часть элементов должна располагаться горизонтально друг за другом, а другая часть произвольно, то произвольные вынеси из Row

С конкретным кодом могу помочь конкретнее


Название: Re: QML warnings
Отправлено: OKTA от Июль 22, 2012, 12:10
ну просто смотри, когда элементы внутри row, мне достаточно выставлять привязки этому row и не беспокоиться о элементах внутри. Типа такого:

Код:
import QtQuick 1.0
Item {
    Row {
        id: row1
        width: 400
        height: 200

        Rectangle {
            id: rectangle1
            x: 49
            y: 37
            width: 115
            height: 127
            color: "red"
        }

        Rectangle {
            id: rectangle2
            y: 1
            width: 100
            height: 100
            color: "cyan"
            anchors.left: rectangle1.right
            anchors.leftMargin: 50
        }
    }

    Row {
        id: row2
        width: 400
        height: 200
        anchors.top: row1.bottom

        Rectangle {
            id: rectangle3
            x: 49
            y: 37
            width: 115
            height: 127
            color: "red"
        }

        Rectangle {
            id: rectangle4
            y: 1
            width: 100
            height: 100
            color: "cyan"
            anchors.left: rectangle3.right
            anchors.leftMargin: 50
        }
    }

}


К тому же, удобно, когда несколько raw не только вертикально располагаются, но и горизонтально.


Название: Re: QML warnings
Отправлено: mutineer от Июль 22, 2012, 12:24
Блин, ты же сам позиционируешь элементы, Row тут просто не нужен, поставь вместо него Item

Вот объясни зачем Row, если ты элементам координаты внутри него задаешь?


Название: Re: QML warnings
Отправлено: OKTA от Июль 22, 2012, 12:26
хм, действительно  ;D но все же непонятно, почему ругается, но работает  :-\


Название: Re: QML warnings
Отправлено: mutineer от Июль 22, 2012, 12:27
Не знаю))