Skip to content

UniDeskComboBox 类型

下拉选择框控件,基于 UniDeskButton 实现。集成了 UniDeskMenu 作为弹出列表,支持可编辑模式、字体委托渲染和组件委托渲染。

项目说明
控件类型可视化控件(Control)
源代码文件路径UniDesk/Controls/UniDeskComboBox.qml
继承UniDeskButton
QML 导入方式import UniDesk.Controls 1.0

自定义属性

属性类型默认值说明
enableFontDelegateboolfalse是否启用字体委托模式(每项文字作为字体名渲染)
enableComDelegateboolfalse是否启用组件委托模式(用于编辑器高亮)
comManagervar组件管理器引用
currentIndexint0当前选中索引
modelvar[]选项列表
editableboolfalse是否可编辑
displayTextstringmodel[currentIndex]显示文字(非编辑模式)
editTextstringdisplayText编辑文字(编辑模式)
currentTextstring当前文字(只读,根据模式返回 displayText 或 editText)
inputMethodHintsintQt.ImhNoPredictiveText输入法提示
validatorvarnull输入验证器
selectTextByMouseboolfalse鼠标是否可选中文字

信号

signal activated()

当用户触发选择(菜单点击或编辑完成匹配)时发出。

行为

  • 点击按钮时自动弹出 UniDeskMenu 菜单
  • 菜单会根据剩余空间自动向上或向下弹出
  • enableFontDelegate 模式下,菜单项以字体名渲染(用于字体选择器)
  • enableComDelegate 模式下,菜单项高亮时会联动组件 indicated 状态
  • 可编辑模式下,用户输入文字后按回车自动匹配 model 中的选项
  • 继承 UniDeskButton 的所有属性(颜色、圆角、图标等)

示例

qml
import UniDesk.Controls 1.0

// 基础用法
UniDeskComboBox {
    model: ["选项 A", "选项 B", "选项 C"]
    currentIndex: 0
    onActivated: console.log("selected:", currentText)
}

// 可编辑模式
UniDeskComboBox {
    model: ["北京", "上海", "广州"]
    editable: true
    onActivated: console.log("confirmed:", currentText)
}

// 字体委托模式
UniDeskComboBox {
    model: ["Microsoft YaHei", "SimSun", "KaiTi"]
    enableFontDelegate: true
}

相关文档

遵循 CC BY-SA 4.0 协议开源文档。