本文整理汇总了C++中QDeclarativeEngine::addPluginPath方法的典型用法代码示例。如果您正苦于以下问题:C++ QDeclarativeEngine::addPluginPath方法的具体用法?C++ QDeclarativeEngine::addPluginPath怎么用?C++ QDeclarativeEngine::addPluginPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDeclarativeEngine
的用法示例。
在下文中一共展示了QDeclarativeEngine::addPluginPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char *argv[])
{
// Get options from the command line
QApplication a(argc, argv);
QTextStream qout(stdout);
if (argc < 2) {
qout << "Usage: " << argv[0] << " <qmlfile> [outputfolder]";
return(1);
}
// source qml file
QFileInfo qmlfile(argv[1]);
if (!qmlfile.exists()) {
qout << "File not found: " << qmlfile.filePath();
return (1);
}
// output folder
QFileInfo outputfolder("");
if (argc == 3) {
outputfolder.setFile(argv[2]);
if (!outputfolder.isDir()) {
qout << "Output folder doesn't exist: " << outputfolder.filePath();
return (1);
}
}
// Parse the qml file
QDeclarativeEngine* qmlEngine = new QDeclarativeEngine();
qmlEngine->addPluginPath("../../imports/com/nokia/symbian"); // component's own imports specified fully so point directly to import folder where dll built to
//qmlEngine->addImportPath("../../imports");
QDeclarativeComponent* qmlComponent = new QDeclarativeComponent(qmlEngine, QUrl::fromLocalFile(qmlfile.filePath()));
if (qmlComponent->isError()) {
qDebug() << qmlComponent->errors();
return (1);
}
QObject* qmlObject = qmlComponent->create();
if ( !qmlObject ) {
qout << "Failed to load: " << qmlfile.path();
qDebug() << qmlComponent->errors();
return (1);
}
//explicit mapping of Qt types to QML types
//it's too complicated to scan through the basic types using private headers so hard-coding this
QMap<QString,QString> qmlBasicType;
qmlBasicType.insert("QAction", "action");
qmlBasicType.insert("bool", "bool");
qmlBasicType.insert("QColor", "color");
qmlBasicType.insert("QDateTime", "date");
qmlBasicType.insert("double", "double");
qmlBasicType.insert("enumeration", "enumeration");
qmlBasicType.insert("QFont", "font");
qmlBasicType.insert("int", "int");
qmlBasicType.insert("ListProperty", "list");
qmlBasicType.insert("QPointF", "point");
qmlBasicType.insert("qreal", "real");
qmlBasicType.insert("QRectF", "rect");
qmlBasicType.insert("QSize", "size");
qmlBasicType.insert("QString", "string");
qmlBasicType.insert("QDateTime", "time"); //Duplicate...
qmlBasicType.insert("QUrl", "url");
qmlBasicType.insert("QVariant", "variant");
qmlBasicType.insert("TransformOrigin", "enumeration");
qmlBasicType.insert("QVector3d", "vector3d");
qmlBasicType.insert("QGraphicsObject", "Item");
qmlBasicType.insert("SStyleWrapper", "style");
qmlBasicType.insert("QObject", "QtObject");
qmlBasicType.insert("QValidator", "validator");
qmlBasicType.insert("SDeclarativeImplicitSizeItem", "Item");
qmlBasicType.insert("ListProperty<QObject>", "list<QtObject>");
qmlBasicType.insert("ListProperty<QGraphicsObject>","list<Item>");
// Get the component name and remove the _QMLTYPE part
QString componentname(qmlObject->metaObject()->className());
componentname = componentname.left(componentname.indexOf("_QML"));
QStringList memberlist;
// Collect all the properties (excluding inherited)
for(int i = qmlObject->metaObject()->propertyOffset() ; i < qmlObject->metaObject()->propertyCount(); ++i) {
memberlist.append(parseProperty(&qmlObject->metaObject()->property(i),qmlBasicType,componentname));
}
// Collect all the methods (excluding inherited)
for(int i = qmlObject->metaObject()->methodOffset() ; i < qmlObject->metaObject()->methodCount(); ++i) {
memberlist.append(parseMethod(&qmlObject->metaObject()->method(i),qmlBasicType,componentname));
}
// Output the results
memberlist.sort();
if (outputfolder.exists()) { // output to file
QFile outputfile(outputfolder.filePath() + "/" + componentname.toLower() + ".txt");
if (outputfile.open(QFile::WriteOnly)) {
QTextStream fout(&outputfile);
for (int i=0; i<memberlist.size();i++) {
if (memberlist.at(i) != QString::null)
fout << memberlist.at(i) << "\n";
}
}
else {
//.........这里部分代码省略.........