本文整理汇总了C++中QQmlEngine::addImportPath方法的典型用法代码示例。如果您正苦于以下问题:C++ QQmlEngine::addImportPath方法的具体用法?C++ QQmlEngine::addImportPath怎么用?C++ QQmlEngine::addImportPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QQmlEngine
的用法示例。
在下文中一共展示了QQmlEngine::addImportPath方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
QApplication app(argc, argv);
const QUrl documentUrl = QUrl("qrc:///main.qml");
QQmlEngine engine;
#ifdef Q_OS_MACOS
engine.addImportPath(QStringLiteral("%1/../PlugIns").arg(QCoreApplication::applicationDirPath()));
#else
engine.addImportPath(PLUGIN_IMPORT_PATH);
#endif
Editor editor;
engine.rootContext()->setContextProperty("_editor", &editor);
QObject::connect(&engine, &QQmlEngine::quit, QCoreApplication::instance(), &QCoreApplication::quit);
QQmlComponent component(&engine, documentUrl);
QWidget *widget = qobject_cast<QWidget*>(component.create());
if (!widget)
qFatal("Failed to create widget from QML");
widget->show();
return app.exec();
}
示例2: main
int main(int argc, char* argv[])
{
QScopedPointer<qf::core::LogDevice> file_log_device(qf::core::FileLogDevice::install());
file_log_device->setDomainTresholds(argc, argv);
file_log_device->setPrettyDomain(true);
qfError() << QThread::currentThread() << "QFLog(ERROR) test OK.";
qfWarning() << "QFLog(WARNING) test OK.";
qfInfo() << "QFLog(INFO) test OK.";
qfDebug() << "QFLog(DEBUG) test OK.";
TheApp app(argc, argv);
QCoreApplication::setOrganizationName("OrienteeringTools");
QCoreApplication::setOrganizationDomain("sourceforge.net");
QCoreApplication::setApplicationName("QSiCli");
QQmlEngine engine;
#ifdef Q_OS_UNIX
engine.addImportPath(QCoreApplication::applicationDirPath() + "/../lib/qml");
#else
engine.addImportPath(QCoreApplication::applicationDirPath() + "/qml");
#endif
engine.rootContext()->setContextProperty("TheApp", &app);
QUrl extensions_url = QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + "/divers/qsicli/extensions/qml/init.qml");
qfDebug() << "creating extensions on path:" << extensions_url.toString();
QQmlComponent component(&engine, extensions_url);
if(!component.isReady()) {
qfError() << component.errorString();
}
else {
QObject *extensions_root = qobject_cast<QWidget*>(component.create());
qfDebug() << "extensions created" << extensions_root;
}
MainWindow w;
//qDebug() << "showing main window";
w.show();
//qDebug() << "enterring the message loop";
int ret = app.exec();
qfInfo() << "bye ...";
return ret;
}
示例3: qrcImport
void tst_qrcqml::qrcImport()
{
QFETCH(QString, importPath);
QFETCH(QString, token);
QQmlEngine e;
e.addImportPath(importPath);
QQmlComponent c(&e, QUrl("qrc:///importtest.qml"));
QVERIFY(c.isReady());
QObject *o = c.create();
QVERIFY(o);
QCOMPARE(o->property("tokenProperty").toString(), token);
delete o;
}
示例4: loading
void QuickAndroidTests::loading()
{
QStringList res;
QQueue<QString> queue;
queue.enqueue(":/QuickAndroid");
QQmlEngine engine;
engine.addImportPath("qrc:///");
while (queue.size()) {
QString path = queue.dequeue();
QDir dir(path);
QFileInfoList infos = dir.entryInfoList(QStringList());
for (int i = 0 ; i < infos.size();i++) {
QFileInfo info = infos.at(i);
if (info.fileName() == "." || info.fileName() == "..")
continue;
if (info.isDir()) {
queue.enqueue(info.absoluteFilePath());
continue;
}
QUrl url = info.absoluteFilePath().remove(0,1);
url.setScheme("qrc");
if (info.suffix() != "qml") {
continue;
}
QFile file(":" + url.path());
QVERIFY(file.open(QIODevice::ReadOnly));
QString content = file.readAll();
content = content.toLower();
// Skip singleton module as it can not be loaded directly
if (content.indexOf("pragma singleton") != -1) {
qDebug() << QString("%1 : Skipped (singleton)").arg(url.toString());
continue;
}
QQmlComponent comp(&engine);
comp.loadUrl(url);
if (comp.isError()) {
qDebug() << QString("%1 : Load Failed. Reason : %2").arg(info.absoluteFilePath()).arg(comp.errorString());
}
QVERIFY(!comp.isError());
qDebug() << QString("%1 : Passed").arg(info.absoluteFilePath());
}
}
}
示例5: loading
void QuickFluxUnitTests::loading()
{
QFETCH(QString, input);
QQmlEngine engine;
engine.addImportPath("qrc:///");
QQmlComponent comp(&engine);
QString path = QtShell::realpath_strip(input);
QUrl url = QUrl::fromLocalFile(path);
QString content = QtShell::cat(path);
comp.setData(content.toUtf8(), url);
if (comp.isError()) {
qDebug() << QString("%1 : Load Failed. Reason : %2").arg(input).arg(comp.errorString());
}
QVERIFY(!comp.isError());
}
示例6: main
int main(int argc, char *argv[])
{
QOptions options(get_common_options());
options.add(QLatin1String("QMLPlayer options"))
("scale", 1.0, QLatin1String("scale of graphics context. 0: auto"))
;
options.parse(argc, argv);
if (options.value(QLatin1String("help")).toBool()) {
options.print();
return 0;
}
QGuiApplication app(argc, argv);
QDir::setCurrent(qApp->applicationDirPath());
qDebug() << "arguments======= " << app.arguments();
set_opengl_backend(options.option(QStringLiteral("gl")).value().toString(), app.arguments().first());
load_qm(QStringList() << QStringLiteral("QMLPlayer"), options.value(QStringLiteral("language")).toString());
QtQuick2ApplicationViewer viewer;
QString binDir = qApp->applicationDirPath();
if (binDir.endsWith(QLatin1String(".app/Contents/MacOS"))) {
binDir.remove(QLatin1String(".app/Contents/MacOS"));
binDir = binDir.left(binDir.lastIndexOf(QLatin1String("/")));
}
QQmlEngine *engine = viewer.engine();
if (!engine->importPathList().contains(binDir))
engine->addImportPath(binDir);
qDebug() << engine->importPathList();
engine->rootContext()->setContextProperty(QStringLiteral("PlayerConfig"), &Config::instance());
qDebug(">>>>>>>>devicePixelRatio: %f", qApp->devicePixelRatio());
QScreen *sc = app.primaryScreen();
qDebug() << "dpi phy: " << sc->physicalDotsPerInch() << ", logical: " << sc->logicalDotsPerInch() << ", dpr: " << sc->devicePixelRatio()
<< "; vis rect:" << sc->virtualGeometry();
// define a global var for js and qml
engine->rootContext()->setContextProperty(QStringLiteral("screenPixelDensity"), qApp->primaryScreen()->physicalDotsPerInch()*qApp->primaryScreen()->devicePixelRatio());
qreal r = sc->physicalDotsPerInch()/sc->logicalDotsPerInch();
if (std::isinf(r) || std::isnan(r))
#if defined(Q_OS_ANDROID)
r = 2.0;
#else
r = 1.0;
#endif
float sr = options.value(QStringLiteral("scale")).toFloat();
#if defined(Q_OS_ANDROID)
sr = r;
if (sr > 2.0)
sr = 2.0; //FIXME
#endif
if (qFuzzyIsNull(sr))
sr = r;
engine->rootContext()->setContextProperty(QStringLiteral("scaleRatio"), sr);
QString qml = QStringLiteral("qml/QMLPlayer/main.qml");
if (QFile(qApp->applicationDirPath() + QLatin1String("/") + qml).exists())
qml.prepend(qApp->applicationDirPath() + QLatin1String("/"));
else
qml.prepend(QLatin1String("qrc:///"));
viewer.setMainQmlFile(qml);
viewer.show();
QOption op = options.option(QStringLiteral("width"));
if (op.isSet())
viewer.setWidth(op.value().toInt());
op = options.option(QStringLiteral("height"));
if (op.isSet())
viewer.setHeight(op.value().toInt());
op = options.option(QStringLiteral("x"));
if (op.isSet())
viewer.setX(op.value().toInt());
op = options.option(QStringLiteral("y"));
if (op.isSet())
viewer.setY(op.value().toInt());
if (options.value(QStringLiteral("fullscreen")).toBool())
viewer.showFullScreen();
viewer.setTitle(QStringLiteral("QMLPlayer based on QtAV. [email protected]"));
/*
* find root item, then root.init(argv). so we can deal with argv in qml
*/
#if 1
QString json = app.arguments().join(QStringLiteral("\",\""));
json.prepend(QLatin1String("[\"")).append(QLatin1String("\"]"));
json.replace(QLatin1String("\\"), QLatin1String("/")); //FIXME
QMetaObject::invokeMethod(viewer.rootObject(), "init", Q_ARG(QVariant, json));
//#else
QObject *player = viewer.rootObject()->findChild<QObject*>(QStringLiteral("player"));
if (player) {
AppEventFilter *ae = new AppEventFilter(player, player);
qApp->installEventFilter(ae);
}
QString file;
#ifdef Q_OS_ANDROID
file = QAndroidJniObject::callStaticObjectMethod("org.qtav.qmlplayer.QMLPlayerActivity"
, "getUrl"
, "()Ljava/lang/String;")
.toString();
#endif
if (app.arguments().size() > 1) {
file = options.value(QStringLiteral("file")).toString();
if (file.isEmpty()) {
if (argc > 1 && !app.arguments().last().startsWith(QLatin1Char('-')) && !app.arguments().at(argc-2).startsWith(QLatin1Char('-')))
file = app.arguments().last();
}
//.........这里部分代码省略.........
示例7: main
int main(int argc, char** argv)
{
QApplication app(argc, argv);
app.setApplicationDisplayName("Peruse");
app.setOrganizationDomain("kde.org");
QCommandLineParser parser;
// TODO file option for opening comics by passing them through on the command line
parser.addHelpOption();
parser.process(app);
if (parser.positionalArguments().size() > 1) {
parser.showHelp(1);
}
KDeclarative::KDeclarative kdeclarative;
QQmlEngine engine;
kdeclarative.setDeclarativeEngine(&engine);
kdeclarative.setupBindings();
bool osIsWindows = false;
#ifdef Q_OS_WIN
// Because windows is a bit funny with paths and whatnot, just so the thing with the lib paths...
QDir appdir(qApp->applicationDirPath());
appdir.cdUp();
engine.addImportPath(appdir.canonicalPath() + "/lib/qml");
osIsWindows = true;
// Hey, let's try and avoid all those extra stale processes, right?
qputenv("KDE_FORK_SLAVES", "true");
#endif
engine.rootContext()->setContextProperty("osIsWindows", osIsWindows);
QQmlContext* objectContext = engine.rootContext();
QString platformEnv(qgetenv("PLASMA_PLATFORM"));
engine.rootContext()->setContextProperty("PLASMA_PLATFORM", platformEnv);
// Yes, i realise this is a touch on the ugly side. I have found no better way to allow for
// things like the archive book model to create imageproviders for the archives
engine.rootContext()->setContextProperty("globalQmlEngine", &engine);
engine.rootContext()->setContextProperty("maxTextureSize", getMaxTextureSize());
QString path;
if (platformEnv.startsWith("phone")) {
path = QStandardPaths::locate(QStandardPaths::DataLocation, "qml/MobileMain.qml");
} else {
path = QStandardPaths::locate(QStandardPaths::DataLocation, "qml/Main.qml");
}
int rt = 0;
QQmlComponent component(&engine, path);
if (component.isError())
{
qCritical() << "Failed to load the component from disk. Reported error was:" << component.errorString();
rt = -1;
}
else
{
if(component.status() == QQmlComponent::Ready)
{
QObject* obj = component.create(objectContext);
if(obj)
{
rt = app.exec();
}
else
{
qCritical() << "Failed to create an object from our component";
rt = -2;
}
}
else
{
qCritical() << "Failed to make the Qt Quick component ready. Status is:" << component.status();
rt = -3;
}
}
return rt;
}