下面的代码是我的问题和插图,我导入和限定为EventListner的qml文件以蓝色突出显示,但是当我使用它时它不起作用。
main.qml:
import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 2.1
import "/qtrealis/untitled15/EventListner.qml" as EventListner
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Button{
onClicked:EventListner.color="blue";
}
EventListner.qml:
import QtQuick 2.7
import QtQuick.Window 2.2
Item {
property string color: "dark"
onColorChanged: console.log("event received!")
}
答案 0 :(得分:1)
如果您想要EventListener
的单例实例,则需要添加
pragma Singleton
作为EventListener.qml
pragma Singleton
import QtQuick 2.7
import QtQuick.Window 2.2
Item {
property string color: "dark"
onColorChanged: console.log("event received!")
}
然后,您需要一个名为qmldir
的文件,其中包含EventListener.qml
的内容:
singleton EventListener 1.0 EventListener.qml
最后,您可以通过导入main.qml
在import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 2.1
import '.' // To import Singletons you need to explicitly import the directory
// that holds the qmldir file
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Button {
onClicked: EventListener.color = "blue";
}
}
中使用它:
qmldir
有关qrc
文件的更多信息,请参阅文档:http://doc.qt.io/qt-5/qtqml-modules-qmldir.html
注意:如果您使用的是
qmldir
- 资源系统,则需要确保已将import 'file:/path/to/the/directory
- 文件添加到其中。 (右键单击qml.qrc,添加/添加现有(取决于它是否已创建))。否则你需要使用import语句:
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); try { Date parsedDate1 = formatter.parse("14-08-2017"); System.out.println(parsedDate1); SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd"); Date parsedDate2 = formatter2.parse("2017-08-1 00:00:00.0 +0:00"); Assert.assertEquals(parsedDate1, parsedDate2); } catch (ParseException e1) { }
(可能是必要的绝对路径)