QuickWidgetを使ってQQml Apple Engineとの違い

822 ワード

萌え夢コミュニティのオリジナル文章、原文の住所:http://qtdream.com/topic/682.転載禁止
昨日、私たちが以前作った製品をQQQmlAppliation Engine-basedからQt Widgetsアプリケーションに移植するために、いくつかの修正をしました.重要な部分の一つは、QQmlApplicationEngine以前のコードをQQuickWidgetに移植することである.しかし、その中には違ったところがあって、私のもとの製品は仕事ができなくなりました.
具体的には、私のQMLコードにはQt.createQmlObjectという関数があり、parentが設置されています.これは、動的にItemページをロードすることができます.これは、main.cppにQQmlApplicationEngineというコードが含まれていますが、QQuickWidgetに移植されると問題が発生します.元々はvisibleで表示と隠しの切り替えができなくなりました.
後ろで文書を見ました.文書はこう言いました.QQuickWidgetはマルチスレッドレンダリングを禁止し、QtのSchene Graphレンダリングの内容をFBOにレンダリングして再表示する.Widgetsのstack orderとの問題を避けることができます.しかし、この原因(未確認)こそ、上記のような不一致を招いたと思います.具体的な問題については、QQuickViewQWidget::createWindowContainer()の関数を使って、問題が解決できるかどうかをテストします.