如何访问在单独的 QML 文件中定义的变量?

问题描述 投票:0回答:1

我无法访问单独文件中的变量。

下面是我的代码的一部分:

// Style.qml

import QtQuick

QtObject {
    property int mainWindowWidth: 1024
    property int mainWindowHeight: 768
}

// Main.qml

import QtQuick
import QtQuick.Window

Window {
    id: root
    width: Style.mainWindowWidth
    height: Style.mainWindowHeight
    minimumWidth: width
    minimumHeight: height
    maximumWidth: width
    maximumHeight: height
    visible: true
    title: "Sampletext"
}

它编译得很好,但是当我运行它时,我收到一条错误消息:

无法将[未定义]分配给线宽:Style.mainWindowWidth所在的int。

我该如何解决这个问题?

c++ qt qml qt-quick
1个回答
0
投票

您必须创建一个样式对象或创建一个样式单例类:

样式单例类及用法:

// Style.qml

pragma Singleton

import QtQuick

QtObject {
    property int mainWindowWidth: 1024
    property int mainWindowHeight: 768
}

cmakelist:

set_source_files_properties(
    Style.qml

    PROPERTIES
        QT_QML_SINGLETON_TYPE True
   )

    qt6_add_qml_module(appExample
        URI appExample
        VERSION 1.0
        QML_FILES
            Main.qml
            Style.qml
    )

// Main.qml

import QtQuick
import QtQuick.Window

import appExample

Window {
    id: root
    width: Style.mainWindowWidth
    height: Style.mainWindowHeight
    minimumWidth: width
    minimumHeight: height
    maximumWidth: width
    maximumHeight: height
    visible: true
    title: "Sampletext"
}
© www.soinside.com 2019 - 2024. All rights reserved.