我正在尝试将QML
信号连接到Qt
广告位。我已经阅读了example,这里是代码
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
时,我都应该将其复制到另一个地方。 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
文件。我该怎么办?
答案 0 :(得分:2)
好的做法是通过将Qt创建者或手工放入.qrc资源文件,使qml文件成为应用程序可执行文件的一部分:
你可以用以下的东西来利用它:
QQuickView view(QUrl("qrc:///res/qml/main.qml"));