qt - QML本地存储不能分配给布尔变量中不同类型的现有角色?
问题描述
我正在 Qt Creator 上制作应用程序。我有一个这样的工具按钮:
ToolButton {
icon.source: (star) ? "icons/star.svg" : "icons/star-border.svg"
onClicked: {
star = !star
Data.update(number, star)
}
states: State {
name: "pressed"; when: parent.pressed === true
PropertyChanges { target: parent; icon.source: (star) ? "icons/star.svg" : "icons/star-border.svg" }
}
transitions: Transition {
from: ""
to: "pressed"
reversible: true
}
}
一切都按预期工作,但是当单击 ToolButton 时,应用程序输出上会出现此错误:
未知文件:无法分配给不同类型的现有角色“星”[Bool -> Number]
看起来这一行是导致错误的原因:star = !star
其中star
变量是来自数据库(本地存储)的布尔值。
修复它重要吗?
如何解决?
这是改变的正确方法吗icon.source onClick
???
解决方案
Local Storage 使用 SQLite,在 SQLite 中没有 boolean,所以 Boolean 变量映射为 0 或 1。
对于替换的解决方法:
star = !star
经过
star = star ? 0: 1
推荐阅读
- haproxy - HA 代理 - 无法使 ssl_fc_sni 应用于 SSL 连接
- php - 添加自定义 WordPress Rest API
- android-emulator - Android 模拟器太大,`scale` 参数被贬低
- typescript - JSDoc 与 Interace 的 Typescript 错误:错误:无法解析
- python - 运行应用程序时出错(ModuleNotFoundError: No module named 'tornado.ioloop')
- angular - mat-datepicker UI 停止正常工作
- javascript - 循环遍历 3 个不同的 RGB 滑块
- vba - 如何在电子邮件正文中包含发件人的详细信息?
- r - 减去数据框中的列 Shiny
- asp.net-core - dotnet publish commandline with platform parameter value of "Any CPU" for a .NET Core Web API Application