QML 项目提供 'unavailable type error' CMake 配置 (Qt 6.2)

QML project gives 'unavailable type error' with CMake configuration (Qt 6.2)

我已经使用 Qt6.2-MinGW-64bit 创建了一个测试项目,我选择了 CMake。 项目结构如图所示。只有3个测试文件相互嵌入,第一个测试文件(test1.qml)用于main.qml.

现在当我想启动程序时,它给出了一个奇怪的错误,即 Test2 不可用。我尝试了不同的场景并检查了 CMake 中的所有步骤,但没有成功。

这里是 main.qml:

import QtQuick
import untitled35

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    property Test1 _example: Test1 {}
}

这是 CMakeFile:

cmake_minimum_required(VERSION 3.16)

project(untitled35 VERSION 0.1 LANGUAGES CXX)

set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 6.2 COMPONENTS Quick REQUIRED)

qt_add_executable(appuntitled35
    main.cpp
)

qt_add_qml_module(appuntitled35
    URI "untitled35"
    VERSION 1.0
    QML_FILES
        main.qml
        core/Test1.qml
        core/Test2.qml
        core/components/Test3.qml
)

set_target_properties(appuntitled35 PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

target_compile_definitions(appuntitled35
    PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries(appuntitled35
    PRIVATE Qt6::Quick)

你的问题是Test2有错误。 QtObject 没有默认的 属性 来将您创建的 Test3 对象放入其中。 Item 将子元素放在它的子元素中,但 QtObject 不做这种假设。尝试将 QtObject 更改为 ItemDocumentation for default properties and Documentation 对于 Item 数据 属性 这是它的默认值。