Я получаю эту ошибку (название, ниже) всякий раз, когда я пытаюсь запустить следующий код:Qt5 QuickView не может создать окно: нет экранов не доступны
#include <QCoreApplication>
#include <QQuickView>
int main(int argc, char *argv[]){
QCoreApplication app(argc, argv);
QQuickView view;
view.setSource(QUrl::fromLocalFile("app.qml"));
QObject *object = (QObject*)view.rootObject();
view.show();
delete object;
return app.exec();
}
Cannot create window: no screens available
The program has unexpectedly finished.
Все, что я могу найти в Интернете для этой ошибки являются сообщения об ошибках, возникающие из конкретных условий, значительно более активно, чем указано выше.
app.qml
- это файл, который работает отлично, т. Е. Без вышеуказанного C++ и в отдельном проекте, настроенном как «Qt Quick UI». Предоставление пути qrc://
или намеренное указание файла, который не существует, не влияет.
Обратите внимание на QObject*
бросок - это не было в the docs, но без него:
/main.cpp:11: error: cannot initialize a variable of type 'QObject *' with an rvalue of type 'QQuickItem *'
Как это должно быть сделано?
Примечание: для того, чтобы иметь собственный стиль операционной системы хоста, используйте 'QApplication' вместо' QGuiApplication'. – mozzbozz
Хорошая точка. Однако для приложений QML, не использующих классы, основанные на QWidget, предпочтение отдается QGuiApplication, поскольку он не имеет зависимостей от библиотеки QtWidgets. – BaCaRoZzo
Хорошо, право - еще не знаю, что еще :) Итак, с 'QtWidgets'-зависимостями вы имеете в виду QtQuick-'Button',' TextField' и т. Д.? – mozzbozz