Мне нужна раскладка QML, которая выглядит примерно так:
+--------+ +--------+
| | | |
| Text 1 | | Text 3 |
+--------+ +--------+
----^^---------vv---------^^----
+--------+
| Text 2 |
| |
+--------+
Другими словами, альтернативные объекты (в данном случае это элемент QML) располагаются выше или ниже некоторой центральной линии, и все, что они содержат (текст QML) в пределах , эти объекты должны идти либо вверх или низ объекта.
Теперь я знаю, что могу выровнять конкретные вещи с помощью якорей на предметах:
anchors.bottom: isAbove ? parent.bottom : parent.top;
, но это установит нижний якорь элемента независимо от того, нужен ли он (например, для второго объекта, указанного выше) Text 2
.
Что я на самом деле ищу, так это способ установки только одного якоря в зависимости от позиции. В псевдо-QML это будет:
isAbove? (anchors.bottom: parent.bottom) : (anchors.top: parent.top);
Другими словами, я хочу привязать элемент снизу к родительскому дну, только если он находится над линией. В противном случае я хочу привязать верх элемента к родительскому верху.
Я думал, что может быть примерно таким:
anchors.bottom: isAbove ? parent.bottom : nothing ;
anchors.top: isAbove ? nothing : parent.top;
, но nothing
не является опцией привязки: -)
Есть ли способ сделать это с QML?