QML类型说明-ComboBox

ComboBox

 

ImportStatement:   import QtQuick.Controls 1.2

Since:  Qt 5.1

Inherits:      FocusScope

 

Properties

acceptableInput: bool

activeFocusOnPress: bool

count : int

currentIndex: int

currentText: string

editText :string

editable :bool

hovered : bool

model :model

pressed :bool

style :Component

textRole :string

validator :Validator

 

Signals

accepted()

activated(intindex)

Methods

find(text)

selectAll()

textAt(index)

 

DetailedDescription

可以分配给下拉选择框一个ListModel或模板属性的字符串列表。

ComboBox {

    width: 200

    model: [ "Banana","Apple", "Coconut" ]

}

下面的例子演示了如何使用ListModel。

ComboBox {

    currentIndex: 2

    model: ListModel {

        id: cbItems

        ListElement { text: "Banana";color: "Yellow" }

        ListElement { text: "Apple";color: "Green" }

        ListElement { text:"Coconut"; color: "Brown" }

    }

    width: 200

    onCurrentIndexChanged:console.debug(cbItems.get(currentIndex).text + ", " +cbItems.get(currentIndex).color)

}

我们可以通过editable属性让下拉选择框变成可编辑的。一个可编辑的下拉选择框可自动基于可利用的模板完成文本。

下面的例子演示了通过onAccepted信号添加模板中的项。注意我们必须显式的防止重复。

另外注意下面的例子,我们人工给模板添加了内容,更多的时候,我们只是使用下拉选择框的可编辑功能,用来在下拉选择框中获得对应项。

ComboBox {

     editable: true

     model: ListModel {

         id: model

         ListElement { text:"Banana"; color: "Yellow" }

         ListElement { text: "Apple";color: "Green" }

         ListElement { text:"Coconut"; color: "Brown" }

     }

     onAccepted: {

         if (editableCombo.find(currentText)=== -1) {

             model.append({text: editText})

             currentIndex =editableCombo.find(editText)

         }

     }

 }

我们可以通过ComboBoxStyle创建ComboBox的样式。

 

PropertyDocumentation

acceptableInput: bool

这是只读的,如果组合框包含可编辑的文本框中的文本,则为真。如果验证器被设置,如果当前文本满足验证器或匹配最终的文本(不是中间的一段字符),则返回真。

这个QML属性在QtQuick.Controls 1.1被介绍。同时参阅validator和accepted。

 

activeFocusOnPress: bool

指明下拉选择框是否在按下的时候获得活跃的焦点。默认为假。

 

count : int

只读的,下拉选择框中组件的数目。这个QML属性在QtQuick.Controls 1.1中被介绍。

 

currentIndex: int

下拉选择框当前选择的组件的索引。设置它为-1将重置selection和清空文本标签。如果下拉选择框是可编辑的,我们还需要人工清除editText。

 

currentText: string

只读的,在下拉选择框当前选中组件的文本。注意currentText依赖于currentIndex,没有办法确认当onCurrentIndexChanged被调用时,currentText被更新。

 

editText :string

在可编辑的下拉选择框中被用户操作的编辑框。这个QML属性在QtQuick.Controls 1.1中被介绍。

 

editable :bool

下拉选择框是否可被用户编辑,默认为假,这个QML属性在QtQuick.Controls 1.1中被介绍。

 

hovered :bool

只读的,控制是否悬停在下拉选择框。

 

model :model

填充下拉选择框的模板,在下拉选择框初始化后改变模板,将重置currentIndex为0。

 

pressed :bool

只读的,按纽是否被按下。

 

style :Component

这个组件的样式。

 

textRole :string

用来填充下拉选择框的模板的功能。

 

validator :Validator

允许我们在可编辑的下拉选择框设置文本验证器。当设置了验证器,只有当enter被按下时,文本处于可接受状态,accepted信号才会发射。当前支持的验证器为IntValidator、DoubleValidator和RegExpValidator。下面展示了使用验证器的例子,它允许在文档域输入0到10的整数(英文文档是11到31,看代码是0到10)。只有当editable为真时,这个属性才是有用效的。

importQtQuick 2.2

importQtQuick.Controls 1.2

 

ComboBox {

    editable: true

    model: 10

    validator: IntValidator {bottom: 0; top:10;}

    focus: true

}

这个QML属性在QtQuick.Controls 1.1中被介绍。

 

SignalDocumentation

accepted()

在可编辑的下拉选择框中,当Enter键被按下,这个信号被发射。如果确认的文档不在当前的模板中,currentIndex被设置成-1,currentText被更新为确认文档。

注意:如果验证器被设置,只有当文本域为可接受状态,这个信号才被发射。

这个QML信号在QtQuick.Controls 1.1中被介绍。

 

activated(intindex)

index是新字符被接受时,在模板的索引或-1。

这个信号和currentIndex的改变相似,但它仅仅在用户改变下拉选择框时发射。这意味着应用程序改变下拉选择框不发射该信号。这个QML信号在QtQuick.Controls 1.1中被介绍。

 

MethodDocumentation

find( text)

寻找或返回给定文档的索引,如果匹配者没有发现,返回-1。搜索区分大小写。

 

selectAll()

所有的编辑文本被选择。

 

textAt(index)

返回给定索引的文本。如果无效的索引被提供,则返回空。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值