0

我正在尝试将QML信号连接到Qt插槽。我已阅读该示例,这是代码

int main(int argc, char *argv[]) {
    QGuiApplication app(argc, argv);
    qDebug()<<QUrl::fromLocalFile("main.qml");
    QQuickView view(QUrl::fromLocalFile("main.qml"));//I should replace that line
    QObject *item = view.rootObject();

    MyClass myClass;
    QObject::connect(item, SIGNAL(qmlSignal(QString)),
                     &myClass, SLOT(cppSlot(QString)));

    view.show();
    return app.exec();

}

它工作正常,但问题是它main.qml应该在文件所在的.exe文件夹中。因此,每次我修改时,main.qml我都应该将其复制到另一个 foder。文件路径main.qml为:“C:\Qt\projects\ConnectionsQT\main.qml”。我试图用替换线

QQuickView view(QUrl("‪C:\Qt\projects\ConnectionsQT\main.qml");

并通过

QQuickView view(QUrl("‪C:\\Qt\\projects\\ConnectionsQT\\main.qml");

但在这种情况下,程序无法找到该main.qml文件。我应该怎么办?

4

1 回答 1

2

好的做法是使用 Qt 创建者或手动将 qml 文件放入 .qrc 资源文件中,从而使您的 qml 文件成为应用程序可执行文件的一部分:

http://qt-project.org/doc/qt-5/qtquick-deployment.html#managing-resource-files-with-the-qt-resource-system

您可以通过以下方式使用它:

QQuickView view(QUrl("qrc:///res/qml/main.qml"));
于 2014-11-23T01:23:51.417 回答