[Qt-qml] Layout question
John Temples
qt-qml at xargs.com
Tue Sep 20 22:07:22 CEST 2011
On Tue, 20 Sep 2011, Pris Matic wrote:
> You can get the number of elements in the column using the
> 'ColumnID.children.length' property. Then you should be freely add and
> remove buttons and maintain your spacing:
Thanks, that does exactly what I want.
> ie. change the Item to:
> Item
> {
> height: parent.height/parent.children.length;
> width: 100;
> Rectangle
> {
> id: rect1;
> height: 40;
> width: 100;
> color: "blue";
> anchors.verticalCenter: parent.verticalCenter;
> }
> }
>
> -Pris
>
> On Tue, Sep 20, 2011 at 1:18 PM, John Temples <qt-qml at xargs.com> wrote:
>
>> On Tue, 20 Sep 2011, Bo Thorsen wrote:
>>
>>> No, I actually meant the exact opposite way :)
>>>
>>> Item {
>>> anchors.centerIn: parent
>>>
>>> Column {
>>> Button {
>>> ...
>>> }
>>> }
>>
>> This is closer to what I'm looking for; the buttons are centered in the
>> column, but they're adjacent to each other. The code that Pris posted
>> actually does what I want (provides even spacing between the buttons),
>> but I'd prefer not to have to use a "parent.height/3" construct to
>> simplify maintenance if I add or remove buttons from the Column. Is
>> there any way around that?
>>
>>>> import QtQuick 1.0
>>>>
>>>> Column
>>>> {
>>>> height: 300;
>>>> width: 100;
>>>>
>>>> Item
>>>> {
>>>> height: parent.height/3;
>>>> width: 100;
>>>> Rectangle
>>>> {
>>>> id: rect1;
>>>> height: 40;
>>>> width: 100;
>>>> color: "blue";
>>>> anchors.verticalCenter: parent.verticalCenter;
>>>> }
>>>> }
>>>> Item
>>>> {
>>>> height: parent.height/3;
>>>> width: 100;
>>>> Rectangle
>>>> {
>>>> id: rect2;
>>>> height: 40;
>>>> width: 100;
>>>> color: "blue";
>>>> anchors.verticalCenter: parent.verticalCenter;
>>>> }
>>>> }
>>>> Item
>>>> {
>>>> height: parent.height/3;
>>>> width: 100;
>>>> Rectangle
>>>> {
>>>> id: rect3;
>>>> height: 40;
>>>> width: 100;
>>>> color: "blue";
>>>> anchors.verticalCenter: parent.verticalCenter;
>>>> }
>>>> }
>>>> }
>>>>
>>>> -Pris
>>>>
>>>> On Tue, Sep 20, 2011 at 2:52 AM, John Temples <qt-qml at xargs.com
>>>> <mailto:qt-qml at xargs.com>> wrote:
>>>>
>>>> Bo,
>>>>
>>>> On Tue, 20 Sep 2011, Bo Thorsen wrote:
>>>>
>>>> > Den 20-09-2011 08:04, John Temples skrev:
>>>> >> Say I have a Column that contains three buttons. Is there a way
>> to
>>>> >> have the three buttons be equally spaced within the Column, and
>>>> remain
>>>> >> equally spaced as the Column's height changes? The buttons
>>>> shouldn't
>>>> >> resize as the Column changes size.
>>>> >
>>>> > The easiest way to do this is with an item between the buttons
>>>> and the
>>>> > column:
>>>> >
>>>> > Item {
>>>> > anchors.centerIn: parent
>>>> >
>>>> > // buttons here...
>>>> > }
>>>>
>>>> I tried this:
>>>>
>>>> Column {
>>>> Item {
>>>> anchors.centerIn: parent
>>>>
>>>> Button {
>>>> text: "One"
>>>> }
>>>> Button {
>>>> text: "Two"
>>>> }
>>>> Button {
>>>> text: "Three"
>>>> }
>>>> }
>>>> }
>>>>
>>>> But I get: "QML Column: Cannot specify top, bottom, verticalCenter,
>>>> fill or centerIn anchors for items inside Column." And the buttons
>>>> all appear on top of each other.
--
John W. Temples, III
More information about the Qt-qml
mailing list