QML布局不限制儿童的宽度

时间:2015-06-02 08:15:07

标签: qt layout qml

我有一个带有几个孩子的QML ColumnLayout,我想限制它的宽度,如下:

static void mergeArrays(int[] a, int[] b) {
    int aLength = a.length;
    int bLength = b.length;

    int[] c = new int[aLength + bLength];

    System.arraycopy(a, 0, c, 0, aLength);
    System.arraycopy(b, 0, c, aLength, bLength);        
}

我得到的结果如下图所示。

enter image description here

橙色框显示内部布局项的尺寸,可以。但是,布局的子文本没有被包装。

我只能通过添加

来解决这个问题
ColumnLayout {

    width: 360
    height: 480

    ColumnLayout {
        id: inner
        Layout.maximumWidth: 200
        Layout.fillHeight: true

        Text {
            text: "Welcome"
            font.pixelSize: 18
        }

        Text {
            text: "Long explanation that should wrap, but ends up overflowing layout"
            wrapMode: Text.WrapAnywhere
        }
    }

    Rectangle {
        anchors.fill: inner
        z: -1
        border.color: "orange"
    }

}

到我的'文字'项目,但这是非常尴尬的方法。我做错了什么,或者这是一个Qt错误,还是出于某种原因它是一种设计方法?我使用的是Qt 5.4.1。

1 个答案:

答案 0 :(得分:2)

  

如果已设置显式宽度,则文本将仅换行

Docs

Text
{
    width: parent.width
}