组合框的QML设置

时间:2017-05-28 09:48:51

标签: qt qml

我正在使用qml Settings

编写设置
Settings {
    id: powerTuneSettings
    property alias serialPortName: serialName.currentText
}

保存有效,但是当程序启动时,设置会被模型中的第一个条目覆盖:

ComboBox {
    id: serialName
    width: 200
    model: Serial.portsNames              
}

如何使用模型初始化组合框并将其设置为存储设置?

2 个答案:

答案 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

中设置应用的organizationName或Organization域
app.setOrganizationName("yourOrg");
app.setOrganizationDomain("domain.org");