2017-11-20 1 views
0

qt/QMLを使用してユーザーインターフェイスを開発しており、アプリケーションの開始時にスプラッシュスクリーンイメージを表示する必要があります。 私はiMX6マイクロプロセッサを搭載したデバイスでアプリケーションを実行しています。 ライブラリQtSplashscreenを使用しましたが、このエラーが表示されます。EGLFS:OpenGLウィンドウを他のものと混在させることはできません。QtでEGFLSを使用してプロジェクトにスプラッシュスクリーンを配置するには

私はそれが2つのウィンドウを同時に開くことができないことを知っています、誰かが助けることができますか?

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スプラッシュビューを表示するための別のウィンドウを使用します。あなたの問題について

+0

「QtSplashScreen」ライブラリはどこにありますか?スプラッシュ画面を通常のqmlファイルとして実装できませんか? – m7913d

+0

使用しているQtのバージョンを指定してください。 – derM

+0

Qtを使用しています。5.8 – sebba23

答えて

0

、このquestionを参照してください。したがって、これは直接的な解決策ではありません。 QWidgetをQQuickItemに埋め込み、QtQuick2コントロールコンポーネントとして使用することができます。

QMLコンポーネントを使用してLoaderをロードすることで、より高速で解決できる方法があります。 Qtサンプルリポジトリを見ることができます。このfileは良い例です。

ここでは簡単な例を示します。

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

QWidgetをQQuickItemに埋め込むにはどうしたらいいですか?あなたにもその例がありますか? – derM

+0

私の知る限り、QWidgetをQQuick2に混ぜることはできません。しかし、あなたはそれを逆にすることもできます... https://stackoverflow.com/questions/13014415/qt5-embed-qwidget-object-in-qml - Qt5が使用されている場合に限り、もちろん保持されます。 – derM

関連する問題