Qt 在QML中声明特定的全局对象
我试图遵循这个答案,但对于更复杂的对象: 我的档案是: qml.qrc:Qt 在QML中声明特定的全局对象,qt,qml,global-variables,Qt,Qml,Global Variables,我试图遵循这个答案,但对于更复杂的对象: 我的档案是: qml.qrc: <RCC> <qresource prefix="/"> <file>main.qml</file> <file>Uconsts.qml</file> <file>Ucolors.qml</file> <file>qmldir</file
<RCC>
<qresource prefix="/">
<file>main.qml</file>
<file>Uconsts.qml</file>
<file>Ucolors.qml</file>
<file>qmldir</file>
</qresource>
</RCC>
qmldir:
# 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";}
}
pragma Singleton
import QtQuick 2.9
QtObject
{
property Ucolors colDay: Ucolors{ canvas: "#eaedf1";}
}