我正在使用qml Settings
Settings {
id: powerTuneSettings
property alias serialPortName: serialName.currentText
}
保存有效,但是当程序启动时,设置会被模型中的第一个条目覆盖:
ComboBox {
id: serialName
width: 200
model: Serial.portsNames
}
如何使用模型初始化组合框并将其设置为存储设置?
答案 0 :(得分:0)
可能的解决方案是将其存储为property string
,然后在Component.onCompleted
的{{1}}回调中搜索模型中的该字符串。如果找到,请设置ComboBox
。
答案 1 :(得分:0)
Combobox
的{{3}}属性是只读的,这意味着您无法直接设置它。要选择Combobox的当前项目,您必须设置其currentIndex
。
不是在设置中存储currentText
,而是存储Combobox的currentIndex
,它应该按预期工作。
ComboBox {
id: serialName
width: 200
model: Serial.portsNames
}
Settings
{
property alias currentIndex: serialName.currentIndex
}
请注意,要使QML设置生效,您可能需要在main.cpp
app.setOrganizationName("yourOrg");
app.setOrganizationDomain("domain.org");