über Ihr Problem findet diese question:
OpenGL and Qt Quick 2 applications can only have one fullscreen window existing at a time. Trying to create another OpenGL window, or trying to mix an OpenGL window with a raster one will display the above message and abort the application.
QSplashScreen ein weiteres Fenster verwenden, um die Splash-Ansicht zu zeigen. Also, das ist keine direkte Lösung. Sie können Ihr QWidget in ein QQuickItem einbetten, um es als QtQuick2-Steuerelementkomponenten zu verwenden. Eine andere und schnellere Lösung besteht darin, eine QML-Komponente zu verwenden und sie mit einer Loader zu laden. Sie können einen Blick in das Qt Examples Repository werfen, dieses file ist ein gutes Beispiel.
Hier gehen wir mit einem einfachen Beispiel;
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();
}
}
Wo finden Sie die Bibliothek 'QtSplashScreen'? Können Sie den Begrüßungsbildschirm nicht als normale qml-Datei implementieren? – m7913d
Bitte geben Sie die Version von Qt an, die Sie verwenden. – derM
Ich verwende Qt 5.8 – sebba23