Я пытаюсь подключить QML
сигнал к Qt
слоту. Я прочитал, что example и вот кодПодключить QML-сигнал произвольно размещенного .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
. Что мне делать?
Название этого вопроса, похоже, не имеет ничего общего с проблемой, с которой вы столкнулись. Во всяком случае проблема заключается в том, что вы перестали использовать 'QUrl :: fromLocalFile()'. URL-адреса не могут начинаться с c: \ – MrEricSir