QML 布局不限制子元素的宽度

问题描述 投票:0回答:1

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

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"
    }

}

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

enter image description here

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

我只能通过添加来解决这个问题

Layout.maximumWidth: parent.width

我的“文本”项目,但这是相当尴尬的方法。我做错了什么吗,或者这是一个 Qt bug,或者是出于某种原因的设计方法?我正在使用 Qt 5.4.1.

qt layout qml
1个回答
2
投票

来自

Text - wrapMode

仅当设置了显式宽度时文本才会换行

基于此:

Text
{
    width: parent.width
}
© www.soinside.com 2019 - 2024. All rights reserved.