qt - 在 QML 中声明特定的全局对象
问题描述
我正在尝试遵循这个答案,但对于更复杂的对象:
https://stackoverflow.com/a/25123824/1036082
我的文件是:
qml.qrc:
<RCC>
<qresource prefix="/">
<file>main.qml</file>
<file>Uconsts.qml</file>
<file>Ucolors.qml</file>
<file>qmldir</file>
</qresource>
</RCC>
main.qml:
import QtQuick 2.9
import QtQuick.Window 2.2
import "."
Window
{
width: 600
height: 400
visible: true
color: Uconsts.colDay.canvas;
}
qml目录:
# qmldir
singleton Uconsts Uconsts.qml
Ucolors.qml:
import QtQuick 2.0
Item
{
property color canvas: "#FFFFFF";
}
Uconsts.qml:
pragma Singleton
import QtQuick 2.9
QtObject
{
property Ucolors colDay:
{
canvas: "#eaedf1";
}
}
运行程序时,在运行时我从 QML 端收到以下错误:
qrc:/main.qml:10: TypeError: Cannot read property 'canvas' of null
qrc:/Uconsts.qml:6:2: Unable to assign QString to Ucolors_QMLTYPE_0*
我在这里做错了什么?
解决方案
QML在使用时不会扣除类型{}
,必须显式创建项目
pragma Singleton
import QtQuick 2.9
QtObject
{
property Ucolors colDay: Ucolors{ canvas: "#eaedf1";}
}
推荐阅读
- python - 使用 pyinstaller 编译后 python 代码无法正常工作
- javascript - nextjs strapi - 表单数据发布请求导致 500 错误
- .net-core - WSO2 v5.9.0 SAMLS SSO 与服务提供商 (AD) '用户必须在下次登录时更改密码' 导致身份验证错误而不是重定向到 .NET 应用程序
- google-oauth - 如何从 ASP.NET Core Web API 中的谷歌外部提供者获取标识值
- azure - 在 GitHub 存储库上同步 python 代码并在 Azure 函数上部署
- firefox - 新标签页上的greasemonkey开始刷新功能
- php - 如何让 PHP getter/setter 从他们的领域继承 DocBlock?
- vue.js - vue中可以不显示源代码吗?
- makefile - 如何检查是否设置了在外部文件中定义的目标中使用的变量
- git - Windows 终端 - 通过 oh-my-posh/posh-git 设置主题错误的 PowerShell 自定义?