クロス プラットフォーム (または少なくともデスクトップ + 組み込みハードウェア) アプリケーションを開発しようとしています。Qt Quick を使用してタッチ フレンドリーな GUI を作成したいと考えています。データを表示する QGLWidget を使用して、従来のアプリケーションを実装しました。ウィンドウの一部のみが OpenGL であることが重要です。このため、EGLFS と LinuxFB には問題があります。X11 (または Wayland) のみがアプリケーションを適切に表示できます (他のものは setParent 関数が欠落しているというエラーをいくつか生成し、画面全体が黒くなります)。今、私は QML で同じことを達成しようとしています。QML アプリケーションの一部としてこの OpenGL レンダラーを使用し、その周りにいくつかの Qt Quick ウィジェットを使用したいと考えています。何人かが同じことを尋ねているのを見つけましたが、答えは常に QDeclarativeItem をサブクラス化し、ペインターを呼び出すことです。■ beginNativePainting() (他の人は QDeclarativeItem を介してエクスポートすると言っていますが、これを行う方法がわかりません)。問題は、デスクトップでは Qt 5.11 のネイティブ ペインタが OpenGL ではないことです。QT5 では、OpenGL グラフィック システムを強制する方法はありません。したがって、OpenGL コンテキスト (QGLContext::currentContext()) を取得しようとすると、常に NULL になります。別の問題: ウィジェットを qmlRegisterType("Test", 1, 0, "Test"); でエクスポートすると、QDeclarativeView を使用した場合にのみ表示されますが、Qt Quick は表示されません。QQuickView を使用すると、モジュール「Test」がインストールされていないと表示されます。どうすればこれを適切に実装できますか? したがって、OpenGL コンテキスト (QGLContext::currentContext()) を取得しようとすると、常に NULL になります。別の問題: ウィジェットを qmlRegisterType("Test", 1, 0, "Test"); でエクスポートすると、QDeclarativeView を使用した場合にのみ表示されますが、Qt Quick は表示されません。QQuickView を使用すると、モジュール「Test」がインストールされていないと表示されます。どうすればこれを適切に実装できますか? したがって、OpenGL コンテキスト (QGLContext::currentContext()) を取得しようとすると、常に NULL になります。別の問題: ウィジェットを qmlRegisterType("Test", 1, 0, "Test"); でエクスポートすると、QDeclarativeView を使用した場合にのみ表示されますが、Qt Quick は表示されません。QQuickView を使用すると、モジュール「Test」がインストールされていないと表示されます。どうすればこれを適切に実装できますか?
1055 次