0

有没有办法根据 QVariant 的数据类型在 ListView 中使用不同的 QtQuick 小部件?

如果我的 QVariant 是布尔类型,则小部件将是一个复选框。如果它是整数,则小部件将是 SpinBox。如果它是 QString,则小部件将是 TextBox。

...ETC...

我想使用 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 类型并创建新的小部件,将所有必要的属性连接到模型,等等。我不确定这是否可行,或者这是否是适合这种情况的正确方法。

4

1 回答 1

0
Item {
    width: parent.width; height: parent.height

    Loader {
       id: myLoader
       source: parent.width<200 ? "ConditionMet.qml" : "ConditionNotMet.qml"
       width: 200
       height: 100
    }

}


这是一个示例代码,您可以使用它来根据条件加载不同的模块。您可以使用相同的代码来适应您的情况。
基本上使用带有条件源的加载器。

于 2014-10-30T11:19:27.920 回答