我的应用修改移动平台上的用户代理字符串。 (用户代理工具)
让用户自定义预设列表会很不错。我想知道哪种方式存储内容将是最好的。
需要的操作:加载列表,添加元素,删除元素,更改元素的顺序,保存列表。
考虑使用XML,因为XmlListModel可用。但有什么更好的吗?如果xml是最好的,可以从qml端轻松操作xml吗?
由于
/ edit:我的功能是这样的:
function getDatabase() {return openDatabaseSync("UserAgentTool", 1.0, "User Agent Tool", 10000); }
function getList()
{
var db = getDatabase();
var ret
db.transaction( function (tx)
{
ret = tx.executeSql("SELECT * FROM UserAgents")
})
return ret
}
function addToList(ualabel, uastring)
{
var db = getDatabase();
db.transaction(function (tx)
{
tx.executeSql('CREATE TABLE IF NOT EXISTS UserAgents(ualabel TINYTEXT UNIQUE, uastring TEXT)')
var ret = tx.executeSql("INSERT OR REPLACE INTO UserAgents VALUES(?, ?)", [ualabel, uastring])
if (ret.rowsAffected <= 0) sqlError();
})
}
signal sqlError()
如何使用getList数据中的选定内容填充ListView?
由于
编辑:这不起作用:
ListView
{
anchors.fill: parent
id: uaview
model: uamodel
delegate: Button { text: model.ualabel}
}
错误是:Unable to assign [undefined] to QString text
答案 0 :(得分:2)
使用XmlListModel,您无法仅使用QML轻松修改数据,但非常容易阅读。 如果你需要读写,并且只想使用QML,我建议你使用ListModel作为工作模型并将数据缓存到LocalStorage(它当前是一个带表的SQLite数据库文件,相当经典)。