0

我正在使用带有 Visual Studio 2012 编译器的 Qt 5.1.1。我有一个带有 c++ 后端的 Quick 2 应用程序。当我在 Qt Creator 中运行应用程序时,一切看起来都很好。但是当我试图从 Qt Creator 之外启动应用程序时,它会崩溃。

我的文件夹中有所有 Qt*.dll ,也有 D3DCompiler_46.dll。

我试图从 C++ 部分访问我的 QML 文件中的一些文件,我看到在 Visual Studio 调试器中崩溃后,崩溃看起来像空指针异常。

QObject *openButton = instanceRoot->findChild<QObject*>("openFileButton");
openButton->setProperty("enabled",QVariant(enabled));

我在 qrc 文件中声明了所有资源,它也包含在我的 .pro 文件中

RESOURCES += res.qrc

通过这篇文章,我的所有 qml 文件都应该嵌入到我的 exe 文件中。但我认为不应该。

我怎样才能找到并解决这个问题?

UPD:这是我的主要功能:

int main(int argc, char *argv[]) {

    QGuiApplication a(argc, argv);
    Q_INIT_RESOURCE(res);
    QQuickView view;
    Decrypter dec;

    view.rootContext()->setContextProperty("Decrypter", &dec);
    QObject::connect(view.engine(), SIGNAL(quit()), &a, SLOT(quit()));
    view.setSource(QUrl("qrc:/PlayerGUI.qml"));
    view.show();


    QQuickItem *rootObject = view.rootObject();
    Player *player = new Player(rootObject);

    return a.exec();
}

UPD2:评论中的两个人被一串代码弄糊涂了:

view.engine()->addImportPath("../QtAV/qml/");

所以,我删除了它,仍然有崩溃(

4

0 回答 0