本文整理汇总了C++中QDeclarativeEngine::clearComponentCache方法的典型用法代码示例。如果您正苦于以下问题:C++ QDeclarativeEngine::clearComponentCache方法的具体用法?C++ QDeclarativeEngine::clearComponentCache怎么用?C++ QDeclarativeEngine::clearComponentCache使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDeclarativeEngine
的用法示例。
在下文中一共展示了QDeclarativeEngine::clearComponentCache方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: clearComponentCache
void tst_qdeclarativeengine::clearComponentCache()
{
QDeclarativeEngine engine;
// Create original qml file
{
QFile file("temp.qml");
QVERIFY(file.open(QIODevice::WriteOnly));
file.write("import QtQuick 1.0\nQtObject {\nproperty int test: 10\n}\n");
file.close();
}
// Test "test" property
{
QDeclarativeComponent component(&engine, "temp.qml");
QObject *obj = component.create();
QVERIFY(obj != 0);
QCOMPARE(obj->property("test").toInt(), 10);
delete obj;
}
// Modify qml file
{
QFile file("temp.qml");
QVERIFY(file.open(QIODevice::WriteOnly));
file.write("import QtQuick 1.0\nQtObject {\nproperty int test: 11\n}\n");
file.close();
}
// Test cache hit
{
QDeclarativeComponent component(&engine, "temp.qml");
QObject *obj = component.create();
QVERIFY(obj != 0);
QCOMPARE(obj->property("test").toInt(), 10);
delete obj;
}
// Clear cache
engine.clearComponentCache();
// Test cache refresh
{
QDeclarativeComponent component(&engine, "temp.qml");
QObject *obj = component.create();
QVERIFY(obj != 0);
QCOMPARE(obj->property("test").toInt(), 11);
delete obj;
}
}
示例2: reloadQML
void QmlBeam::reloadQML(QUrl mainFile)
{
// The mainFile parameter is ignored, instead a property is used to cover non-default asset names.
Q_UNUSED(mainFile);
// Get the context of the first scene root to keep the contextProperties.
QDeclarativeContext* context = QDeclarativeEngine::contextForObject(mRoot);
// Clear the QML cache.
QDeclarativeEngine* appEngine = context->engine();
appEngine->clearComponentCache();
// Reload all QML.
QmlDocument* qml = QmlDocument::create(mMainFile);
AbstractPane *root = qml->createRootObject < AbstractPane > (context);
// qml->setParent(root);
Application::instance()->setScene(root);
}