Как я могу поставить заставку на моем проекте, используя EGFLS в QT

Я занимаюсь разработкой пользовательского интерфейса с помощью qt / QML, и мне нужно показать изображение с заставкой в ​​начале приложения.
Я запускаю приложение на устройстве с микропроцессором iMX6.
Я использовал библиотеку QtSplashscreen, но она выдает мне эту ошибку: EGLFS: окна openGL нельзя смешивать с другими.

Я знаю, что он не может открыть 2 окна одновременно, кто-нибудь может помочь?

0

Решение

О вашей проблеме, посмотрите это вопрос:

Приложения OpenGL и Qt Quick 2 могут иметь только одно полноэкранное окно одновременно. Попытка создать другое окно OpenGL или попытка смешать окно OpenGL с растровым окном отобразит вышеуказанное сообщение и прервет приложение.

QSplashScreen использует другое окно, чтобы показать всплеск. Так что это не прямое решение. Вы можете встроить свой QWidget в QQuickItem, чтобы использовать его в качестве компонентов управления QtQuick2.

Другое и более быстрое решение — использовать компонент QML и загрузить его с погрузчик. Вы можете посмотреть в репозитории примеров Qt, это файл хороший пример

Здесь мы идем с легким примером;

Loader {
id: splashLoader
anchors.fill: parent
source: "SplashScreen.qml"asynchronous: false
visible: true

onStatusChanged: {
if (status === Loader.Ready) {
appLoader.setSource("App.qml");
}
}
}

Connections {
target: splashLoader.item
onReadyToGo: {
appLoader.visible = true
appLoader.item.init()
splashLoader.visible = false
splashLoader.setSource("")
appLoader.item.forceActiveFocus();
}
}

Loader {
id: appLoader
anchors.fill: parent
visible: false
asynchronous: true
onStatusChanged: {
if (status === Loader.Ready)
splashLoader.item.appReady()
if (status === Loader.Error)
splashLoader.item.errorInLoadingApp();
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]