有没有办法在ListView中根据QVariant的数据类型使用不同的QtQuick小部件?
如果我的QVariant是布尔类型,则小部件将是一个复选框。 如果是整数,则窗口小部件将是SpinBox。 如果它是QString,则窗口小部件将是TextBox。
...等...
我想使用QSettings加载/保存我的应用程序设置。
例如:
QSettings settings("userSettings.ini", QSettings::IniFormat);
setAutoUpdate(settings.value("AutoUpdate").toBool());
setAutoUpdateFrequency(settings.value("AutoUpdateFrequency").toInt());
setLastFilePath(settings.value("LastFilePath").toString());
可以通过转换推断,我的autoUpdate
类型是布尔值,我的autoUpdateFrequency
是整数,而我的lastFilePath
是QString。我希望在“设置/首选项”对话框中填充列表,而无需硬编码并手动定位表单上的每个值。
同事的一个建议是,Javascript可以在创建时确定QVariant类型并创建新窗口小部件,将所有必要属性连接到模型,等等。我不确定这是否有用,或者这是否适合这种情况。
答案 0 :(得分:0)
Item {
width: parent.width; height: parent.height
Loader {
id: myLoader
source: parent.width<200 ? "ConditionMet.qml" : "ConditionNotMet.qml"
width: 200
height: 100
}
}
这是一个示例代码,您可以根据条件加载不同的模块。您可以使用相同的代码来适应您的情况。
基本上使用带条件源的加载器。