当我选中复选框时,如何下拉选项?

时间:2015-05-22 13:40:52

标签: qt checkbox qml

我有一个CheckboxonCheckedChanged处理程序,我想要的是,当选中Checkbox时,下拉一个包含多个文本和文本字段的菜单。我有以下代码:

CheckBox { 
    id: box
    onCheckedChanged: {
        // TODO here to dropdown a menu with settings
    }
}

我有以下文字和文字字段:

Component {
    id: label

    Text {
        color: "red"
        antialiasing: true
        smooth: true
    }
}

我是QML的新手,请耐心等待。

1 个答案:

答案 0 :(得分:1)

你没有真正说出这个菜单的位置,是否浮动,或者只是出现可能会取代视图中的其他元素。无论如何,为了回答您的问题,您可以通过将“菜单”的zigzag设置为零来实现您的要求,然后在选中height时将其设置为您想要的高度成为。要使菜单变得平滑,您可以使用CheckBox

您可以将NumberAnimation广告单元更改为:

onCheckedChanged()

并添加以下内容,作为菜单元素的子项:

onCheckedChanged: {
    menu.height = checked ? 100 : 0
}

使菜单的Behavior on height { NumberAnimation {...} } 在一段时间内从0增加到100,以使其平稳增长。

我更喜欢的另一种方法是使用StateTransition(而不是行为)。

以下是“菜单”的示例,当选中height时,该菜单将从CheckBox下方滑出:

CheckBox

我希望这能回答你的问题。