实现支持隐式和显式宽度的组件

时间:2015-01-21 14:15:35

标签: qml qtquick2

我想要一行两个单行文本项。第一个应始终完全可见。如果根项目没有明确设置其implicitWidth属性,则第二个应该通过自己的width的值添加到主项目的width。在其他情况下,应省略第二个文本项,以使其适合剩余空间。

这是我想要做的一个例子。变体1是我想到的第一件事,但它不起作用。第二个变体显示了我的期望。唉,我不喜欢,因为它需要总结Row的所有子项。幸运的是,我只有两个。如果我想添加更多内容怎么办?

import QtQuick 2.2

Item {
    // variant 1
//    implicitWidth: row.implicitWidth
    // variant 2
    implicitWidth: Math.ceil(name.implicitWidth + value.implicitWidth)
    implicitHeight: row.implicitHeight

    Row {
        id: row
        anchors {
            left: parent.left
            right: parent.right
        }

        Text {
            id: name
            text: "Label"
        }
        Text {
            id: value
            width: parent.width - x
            text: "Value"
            elide: Text.ElideRight
            horizontalAlignment: Text.AlignRight
        }
    }
}

0 个答案:

没有答案