Я занимаюсь разработкой пользовательского интерфейса с помощью qt / QML, и мне нужно показать изображение с заставкой в начале приложения.
Я запускаю приложение на устройстве с микропроцессором iMX6.
Я использовал библиотеку QtSplashscreen, но она выдает мне эту ошибку: EGLFS: окна openGL нельзя смешивать с другими.
Я знаю, что он не может открыть 2 окна одновременно, кто-нибудь может помочь?
О вашей проблеме, посмотрите это вопрос:
Приложения 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();
}
}
Других решений пока нет …