如何在没有固定大小的布局中删除文本项?

时间:2018-09-03 12:11:24

标签: qt qml

根据Text.elide的文档

  

只有设置了明确的宽度,文本才会消失。

但是,如果我希望我的文本项占用布局中的所有可用空间并淘汰不适合的内容,怎么办?

例如,具有固定宽度的项目(图标,按钮...)和一些文本的布局:

RowLayout
{
    id: _layout
    anchors.fill: parent

    Rectangle {
        color: "lightblue"
        height: 20
        width: 20
    }
    Text {
        text: "long words long words long words long words long words long words long words long words long words long words "
        elide: Text.ElideRight
    }
    Rectangle {
        color: "lightblue"
        height: 20
        width: 20
    }
}

如果窗口/容器太小,此代码将被截断,并在文本后隐藏项目(也不会像省略的文本一样显示...)。

1 个答案:

答案 0 :(得分:2)

您必须指定布局应如何限制宽度,例如与:

Text {
    text: "long words long words long words long words long words long words long words long words long words long words "
    elide: Text.ElideRight

    Layout.fillWidth: true
}

请参阅:http://doc.qt.io/qt-5/qml-qtquick-layouts-layout.html#fillWidth-attached-prop