2017-05-28 96 views
0

我與QML寫設置SettingsQML設置組合框

Settings { 
    id: powerTuneSettings 
    property alias serialPortName: serialName.currentText 
} 

保存作品,但是當PROGRAMM開始設置得到由模型中的第一項自動覆蓋:

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

我怎麼能初始化與模型組合框並將其設置爲存儲的設置?

回答

0

可能的解決方案是將其存儲爲property string,然後在Component.onCompletedComboBox的回調模型中搜索該字符串。如果找到,則設置爲currentIndex

+0

我嘗試這樣做:'屬性字符串的SerialPort:serialName。 currentText「,但它也在啓動時被覆蓋: –

0

currentText屬性是隻讀的,這意味着你不能直接設置它。要選擇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");