qml 组合框ComboBox
- ComboBox填充数据模型,数据模型通常是JavaScript数组,ListModel或者是整数,但是也支持其他类型的数据模型。另外,ComboBox还可以编辑
- 属性
acceptableInput : bool,此属性控制组合框是否包含可编辑文本字段中的可接受文本
count : int,组合框中的项目数
currentIndex : int,保存组合框中当前项的索引,只读
currentText : string,组合框中当前项的文本,只读
delegate : Component,包含一个委托,该委托在组合框弹出窗口中显示项目
displayText : string,保存组合框按钮上显示的文本
down : bool,保存组合框按钮是否在视觉上向下
editText : string,指示将文本保存在可编辑组合框的文本字段中
editable : bool,控制组合框是否可编辑
flat : bool,控制组合框按钮是否平坦
highlightedIndex : int,表示组合框弹出列表中突出显示项的索引,,只读
indicator : Item,包含拖放指示器项
inputMethodComposing : bool,表示可编辑组合框中是否具有部分文本输入采用某种输入方法
inputMethodHints : flags,为输入法提供有关组合框的预期内容及其操作方式的提示
model : model,控制着为组合框提供数据的模型
popup : Popup,包含弹出窗口
pressed : bool,代表组合框按钮是否以物理的方式按下
textRole : string,表示用于填充组合框的模型角色
validator : Validator,包含可编辑组合框的输入文本验证程序 - 方法
void decrementCurrentIndex()
如果弹出列表可见,则递减组合框的当前索引或突出显示的索引
int find(string text, flags)
返回指定文本的索引,如果未找到匹配项,则返回 -1
void incrementCurrentIndex()
如果弹出列表可见,则增加组合框的当前索引或突出显示的索引
void selectAll()
选择组合框的可编辑文本字段中的所有文本
string textAt(int index)
返回指定索引的文本,如果索引超出范围,则返回空字符串 - 信号
- void accepted()
在可编辑的组合框上按下 Return 或 Enter 键时会发出此信号。如果输入的字符串不在模型中,则将currentIndex 设置为 -1,并且 currentText 将相应地更新。注意:如果组合框上设置了 validator,则只有在输入处于 acceptable 状态时才会发出信号。 - void activated(int index)
用户在弹出窗口进行选择项目激活索引处的项目时,将发出此信号。 - void highlighted(int index)
当弹出列表中索引处的项目被用户突出显示时,将发出此信号
填充整数值的ComboBox
当我们进行在弹出窗口做出选择时,会触发activated信号,相应的在信号处理函数onActivated中,输出displayText(ComboBox上显示的文本)
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2Window {visible: truewidth: 640height: 480title: qsTr("test")color: "gray"ComboBox{anchors.centerIn: parentmodel:[1,2,3,4,5,6,7,8,9]onActivated: {console.log(displayText)}}
}
填充ListModel的ComboBox
ComboBox为可编辑,当可编辑的组合框上按下 Return 或 Enter 键时会发出accepted()信号,所以在其信号处理函数中设置将新输入的数据添加进模型的末尾。
- 下图的【Four】【Five】是在ComboBox编辑后按【Enter】键后,在model模型末尾添加了数据
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2Window {visible: truewidth: 640height: 480title: qsTr("test")color: "gray"ComboBox {editable: trueanchors.centerIn: parentmodel: ListModel {id: numListElement { text: "One" }ListElement { text: "Two" }ListElement { text: "Three" }}onAccepted: {if (find(editText) === -1)num.append({text: editText})}}
}
- 使用具有多个命名角色的模型时,为了显示其文本和代理实例,必须使用特定的 textRole 配置 ComboBox。 如下使用了2个命名角色key和value
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
Window {visible: truewidth: 640height: 480title: qsTr("test")color: "gray"ComboBox {textRole: "key"model: ListModel {ListElement { key: "One"; value: 123 }ListElement { key: "Two"; value: 456 }ListElement { key: "Three"; value: 789 }}}
}
自定义ComboBox
- ComboBox可视项组成:背景项background,内容项contentitem,弹出窗口popup,指示器indicator和委托项delegate
indicator自定义需要用到画布Canvas进行重绘比较复杂
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2Window {visible: truewidth: 640height: 480title: qsTr("test")color: "gray"ComboBox {anchors.centerIn: parentid: controlmodel: ["One", "Two", "Three"]delegate: ItemDelegate { //呈现标准视图项 以在各种控件和控件中用作委托width: control.widthcontentItem: Text {text: modelData //即model中的数据color: "green"font: control.fontverticalAlignment: Text.AlignVCenter}}contentItem: Text { //界面上显示出来的文字leftPadding: 5 //左部填充为5text: control.displayText //表示ComboBox上显示的文本font: control.font //文字大小color: control.pressed ? "orange" : "black" //文字颜色verticalAlignment: Text.AlignVCenter //文字位置}background: Rectangle { //背景项implicitWidth: 120implicitHeight: 40color: "green"border.width: 1radius: 2}popup: Popup { //弹出项y: control.heightwidth: control.widthimplicitHeight: contentItem.implicitHeightpadding: 1//istView具有一个模型和一个委托。模型model定义了要显示的数据contentItem: ListView { //显示通过ListModel创建的模型中的数据clip: trueimplicitHeight: contentHeightmodel: control.popup.visible ? control.delegateModel : null}background: Rectangle {border.color: "green"radius: 2}}}
}
qml 组合框ComboBox相关推荐
- JQuery Easy Ui 可装载组合框 - ComboBox
可装载组合框 - ComboBox 继承自$.fn.combo.defaults,通过$.fn.combobox.defaults覆盖默认值 combobox显示的是一个可以编辑的文本框和一个下拉列表 ...
- Python之tkinter 组合框 Combobox
文章目录 组合框 Combobox 简介 建立 Combobox 设置默认选项 current() 获得目前选项 get() 绑定 Combobox 组合框 Combobox 简介 Combobox ...
- QML_组合框ComboBox
QML_组合框ComboBox ComboBox的属性: 1.acceptableInput : bool,此属性控制组合框是否包含可编辑文本字段中的可接受文本 2.count : int,组合框中的 ...
- C#学习笔记:Windows窗体编程——组合框ComboBox的使用
参考书目:C#6.0学习笔记--从第一行C#代码到第一个项目设计(作者周家安)P331 学习内容:组合框ComboBox的使用.从ComboBox中取出选择项,并显示在另外的label控件上 第一步: ...
- 组合框ComboBox
组合框(ComboBox)的本质是文本框(TextBox)和列表框(ListBox)的组合. 组合框的属性方法和事件与文本框和列表框的大多数用法一致.例如,List属性.ListIndex属性.Cle ...
- VC组合框ComboBox控件用法
1.关于CComboBox在对话框中没有下拉项目的问题 答: 资源编辑器中对话框中CComboBox组件的垂直范围拉大了下,就看见字体了.先点击右边向下的箭头,然后会出现上下可调的双向箭头,拖拉即可. ...
- [转载]C#中,让组合框(ComboBox)支持拼音首字母检索筛选
通过继承系统的ComboBox,写一个新控件ComboBoxEx,重写它的焦点以及文本更新事件,就可以轻松实现拼音首字母检索了.例如:输入 gd ,就可以出现"广东". 1usi ...
- c#中组合框comboBox 运行后禁止手写输入
将DropDownStyle 的属性改为DropDownList.
- vb.net datagridview数据批量导入sql_【自学C#】|| 笔记 44 ComboBox:组合框控件数据绑定...
一.ComboBox:组合框控件数据绑定 在 Windows 应用程序中很多控件都提供了 DataSource 属性,并将 DataSet 或 DataTable 的值直接赋给该属性,这样在控件中即可 ...
最新文章
- Fedora开启FTP服务
- mysql添加普通用户用于管理单一数据库
- pymssql mysql_Python利用pymssql访问mysql数据库
- Linux Kernel Git国内镜像源
- Hbase高级功能过滤(Filter)
- SLAM 无人车融合 IMU 前与 融合 IMU 后的实测效果演示
- 解决:android源码同步repo sync 时出现的fatal:duplicate path错误
- rust第三人称视角插件_第三人称视角ThirdPerson Everything Mod
- 多模块顺序_广东省考行测时间如何分配?答题顺序的建议?
- Excel如何按照颜色排序
- T和?是什么 ?有什么区别?
- 微信开发工具调试公众号
- Excel分组行转列
- 道阻且长之C++对象模型
- 非线性规划求解_突破 | 杉数求解器COPT首发求解内点法
- 美式英语音标词对照表
- 简述什么是图灵机_图灵机的工作原理是什么
- 为什么这些UI设计很糟糕?什么是好的UI设计?
- 2022年PMI-ACP考试大纲是什么?快来看
- HSDPA建网及商用策略(转)
热门文章
- android ios av tv,iOS AVPlayerItem
- 泰山OFFICE技术讲座:字符宽度、中文标宽、字符间距
- 2.PRT文件的解析
- 无法将值vmware-tray.exe写入注册表
- android 狂野飙车8更新,安卓、Win10 Mobile版《狂野飙车8》更新:加入保时捷家族...
- 基础1-单位长度的解析
- 基于python中cv2库的图像分割
- IPFS、区块链的libp2p
- 直播app源代码,android弹框的几种操作
- Tech.Ed 2011微软技术大会(三)之课程回顾