内联/相同文件对象类型定义

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

我可以像这样定义对象类型:

// Test.qml
import QtQuick 2.6

Rectangle {
    width: 50
    height: 50
}

并且可以通过颜色等设置属性轻松重复使用

// main.qml
import QtQuick 2.6
import QtQuick.Window 2.2

Window {
    visible: true
    width: 640
    height: 480

    Test {
        color: "blue"
    }

    Test {
        x:50
        color: "red"
    }
}

但有时我有一些对象只想在单个文件中重用。因此,为我只会在该单个文件中重用的对象创建附加文件似乎并不正确。

可以在同一个文件中完成上面示例中类似的操作吗?

qt qml
2个回答
1
投票

可以在同一个文件中完成上面示例中类似的操作吗?

这个问题似乎与this 类似。您可以使用

Loader
动态对象创建,但我认为这并不比将代码移动到单独的文件更好,就像您在示例中所做的那样。

因此,为我只会在该单个文件中重用的对象创建附加文件似乎并不正确。

我不同意这一点。即使重用发生在单个文件中,重用组件仍然是有好处的。阅读直接实例化组件实例的代码比使用加载器或动态对象创建要清晰得多。


0
投票

Это стало актуально для меня QT 6: ответ есть в Stackowerflow что было добавлено в QT 5 和 работает, но сложно найти в документации

这与我的 QT 6 相关: 答案就在Stackowerflow 它是在 QT 5 中添加的并且可以工作,但很难在文档中找到

Button{
    width:40
    height: 50
    x: 200
    y: 200

    background: Rectangle{
        color: "red"
    }
}

component Trule : Button{
    width:40
    height: 50
    x: 200
    y: 200

    background: Rectangle{
        color: "red"
    }
}

Trule {
    x: 280
}

第一个红色按钮旁边有一个使用组件创建的实例

за 组件 следует имя нового типа, после двоеточия любой структурированный сложный элемент, например здесь он начинается按钮,не знаю почему не сделали просто {} уже в котором был-бы любой набор

在组件之后是新类型的名称,在冒号之后是任何结构化的复杂元素,例如这里它以按钮开头,我不知道为什么他们不只是制作包含任何集合的 {}

© www.soinside.com 2019 - 2024. All rights reserved.