Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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_Qt5 - Fatal编程技术网

Qt 在.qml文件中声明字符串

Qt 在.qml文件中声明字符串,qt,qml,qt5,Qt,Qml,Qt5,我试图在qml中创建一个varaibles文件,该文件声明了几个字符串供其他qml文件使用。例如:这将是Variables.qml import QtQuick 2.0 Item { property var mystring: qsTr("hello world") } 我想在另一个文件tab1.ui.qml中引用它 import QtQuick 2.4 import QtQuick.Controls 1.4 import QtQuick.Layouts 1.3 import ".

我试图在qml中创建一个varaibles文件,该文件声明了几个字符串供其他qml文件使用。例如:这将是Variables.qml

import QtQuick 2.0

Item {
    property var mystring: qsTr("hello world")
}
我想在另一个文件tab1.ui.qml中引用它

import QtQuick 2.4
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.3
import "."

Item {
    Rectangle {
        id: rectangle
        color: "#3e1edd"
        anchors.fill: parent
        Text {
                id: text6
                anchors.fill: parent
                font.pixelSize: 12
                text: Variables.mystring
                visible: true
        }
    }
 }
这会产生一个错误:无法将[undefined]分配给QString


请告诉我是否有更好的方法来管理变量。我希望它们是全局的,以便可以在多个帧中使用。谢谢

您必须使用单例,为此您必须创建一个文件夹,其中包含顶部带有“pragma singleton”的.qml和一个指示文件的qmldir:

Global
 ├── qmldir
 └── Variables.qml
qmldir

singleton Variables 1.0 Variables.qml
变量。qml

pragma Singleton
import QtQuick 2.0

QtObject {
    property var mystring1: qsTr("hello world1")
    property var mystring2: qsTr("hello world2")
}
然后必须按以下方式导入和使用它:

// others imports
import "Global"

// ...

    Text{
        // ...
        text: Variables.mystring1
    }
在这里你会发现一个例子