Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 在QML中声明特定的全局对象_Qt_Qml_Global Variables - Fatal编程技术网

Qt 在QML中声明特定的全局对象

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

我试图遵循这个答案,但对于更复杂的对象:

我的档案是:

qml.qrc:

<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";}
}