85 lines
2.9 KiB
QML
85 lines
2.9 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Controls.Material
|
|
import QtQuick.Layouts
|
|
import QtQuick.Window
|
|
import Qt.labs.folderlistmodel 2.4
|
|
import comboboxtests 1.0
|
|
|
|
Window {
|
|
width: 640
|
|
height: 480
|
|
visible: true
|
|
title: qsTr("Hello World")
|
|
|
|
GridLayout {
|
|
anchors.fill: parent
|
|
|
|
columns: 2
|
|
|
|
// IconComboBox shall support qml ListModels
|
|
IconComboBox {
|
|
Layout.preferredHeight: 64
|
|
id: listModelComboBox
|
|
textRole: 'theText'
|
|
valueRole: 'theValue'
|
|
iconSourceRole: 'theIconUrl'
|
|
model: ListModel {
|
|
ListElement { theText: 'text0'; theValue: 'value0'; theIconUrl: 'qrc:/comboboxtests/icons/movinghead.png' }
|
|
ListElement { theText: 'text1'; theValue: 'value1'; theIconUrl: 'qrc:/comboboxtests/icons/movinghead.png' }
|
|
ListElement { theText: 'text2'; theValue: 'value2'; theIconUrl: 'qrc:/comboboxtests/icons/nebelmaschine.png' }
|
|
ListElement { theText: 'text3'; theValue: 'value3'; theIconUrl: 'qrc:/comboboxtests/icons/nebelmaschine.png' }
|
|
ListElement { theText: 'text4'; theValue: 'value4'; theIconUrl: 'qrc:/comboboxtests/icons/rgbstrahler.png' }
|
|
ListElement { theText: 'text5'; theValue: 'value5'; theIconUrl: 'qrc:/comboboxtests/icons/rgbstrahler.png' }
|
|
}
|
|
}
|
|
Label {
|
|
text: qsTr('currentValue: ') + listModelComboBox.currentValue
|
|
}
|
|
|
|
// IconComboBox shall support qml FolderListModels (to let the user select which icon to use)
|
|
IconComboBox {
|
|
Layout.preferredHeight: 64
|
|
id: folderListModelComboBox
|
|
textRole: "fileBaseName"
|
|
valueRole: "fileBaseName"
|
|
iconSourceRole: "fileUrl"
|
|
model: FolderListModel {
|
|
folder: "qrc:/comboboxtests/icons/"
|
|
showDirs: false
|
|
|
|
function getUrlForIcon(name) {
|
|
let myFolder = folder;
|
|
if (myFolder.length < 1 || myFolder.charAt(myFolder.length - 1) !== '/') {
|
|
myFolder = myFolder + '/';
|
|
}
|
|
|
|
return myFolder + name + ".png"
|
|
}
|
|
}
|
|
}
|
|
Label {
|
|
text: qsTr('currentValue: ') + folderListModelComboBox.currentValue
|
|
}
|
|
|
|
// IconComboBox shall support C++ QAbstractListModels (access to our internal database)
|
|
IconComboBox {
|
|
Layout.preferredHeight: 64
|
|
id: cppModelComboBox
|
|
textRole: 'theText'
|
|
valueRole: 'theValue'
|
|
iconSourceRole: 'theIconUrl'
|
|
model: CppDefinedModel {
|
|
|
|
}
|
|
}
|
|
Label {
|
|
text: qsTr('currentValue: ') + cppModelComboBox.currentValue
|
|
}
|
|
|
|
Item {
|
|
Layout.fillHeight: true
|
|
}
|
|
}
|
|
}
|