5

おそらく、「私のプログラム コードは、さまざまな Qt5 ペインティング システムを経由して画面上の GUI にどのように遷移するのですか?」と同じです。

Qt はさまざまな種類のプラットフォームをサポートしているため、私の質問は Linux と組み込み Linux にのみ基づいています (どちらもオープンソース OS であり、描画が異なるため :-) )。</p>

私の質問は、次のトピックに焦点を当てています。

  1. ,<code> QGraphicsItem QWidget,<code>Rectangle (QML 内) はペインティング システムで異なりますか? で、それ何?

  2. QPainter(<code>QPaintEngine)クラスを使わないのはどれ?

  3. Qt4.8 (または Qt5) にはいくつのペイント エンジンが実装されていますか? たとえば、QRasterPaintEngine.

  4. プラットフォームが Linux (X11 をサポート) の場合、Qt は X11 API を使用して描画を行いますか? では、X11 のペイント エンジンと の違いは何QRasterPaintEngineですか? プラットフォームが OpenGL もサポートしている場合、Qt は X11 API または OpenGL API を使用しますか?

  5. GPU が OpenGL をサポートしている場合、Qt は OpenGL を使用できます。OpenGL が GPU でサポートされていない場合、Qt はこの状況をどのように処理しますか?

4

1 に答える 1

4

あなたの質問は非常に幅広く、そのほとんどは Qt QPaintEngine ドキュメントで答えることができます:

https://doc.qt.io/qt-5/qpaintengine.html

QPaintEngine クラスは、QPainter が特定のプラットフォーム上の特定のデバイスに描画する方法の抽象的な定義を提供します。Qt 4.0 は、サポートするさまざまなペインタ バックエンド用に、QPaintEngine のいくつかの事前作成された実装を提供します。サポートするウィンドウ システムとペイント フレームワークごとに 1 つのペイント エンジンを提供します。これには、Unix/Linux の X11 と Mac OS X の CoreGraphics が含まれます。さらに、OpenGL (QGLWidget からアクセス可能) および PostScript (X11 の QPSPrinter からアクセス可能) の QPaintEngine 実装を提供します。さらに、エンジンが特定の機能をサポートしていない場合のフォールバックとなる、ラスター ベースのペイント エンジンがあります。

于 2012-01-28T17:47:05.320 に答える