2009-10-28 14 views
13

私はカイロのグラフィックライブラリwhith Qtを使用したいですが、私はドキュメントを見つけることができません。私はGUIをwhith Qtにして、カイロを使ってQtウィンドウにグラフィックスを描きたいだけです。カイロとQtの統合

ありがとうございました。

答えて

10

最近のバージョンのcairoは、cairo_qt_surface_create(QPainter *painter)で作成されたサーフェスに描画することを許可してQtをサポートしています。関連するヘッダファイルhereを調べることができます。この機能は(あなた自身が明示的にconfigure --enable-qtとQtのサポートを有効にカイロをコンパイルする必要がありますまだ実験と、デフォルトでは無効になっているので、何のドキュメントはありません

+0

私は確かにこれを試しています、私は本当にそれがうまくいくことを願っています。今はGTKを試していますし、Qtほど良くありません。 – Andrei

+1

C++を使用している場合は、[C++バインディング](http://library.gnome.org/devel/gtkmm-tutorial/unstable/index-info.html.en)を使用するとより快適になると思います。プレーンGTK +それ自身。QtとQPainter、GTK +とcairo、gtkmmとcairomm、そして有効なミックス...あなたが望むものに応じて、それらはすべて有効なオプションです。 – ntd

4

警告書:これはあなたが探している回答ではありません。

本当に必要ですか?何のために?これは、カイロに基づいてQPaintDeviceと書いていますか? Qtには独自のグラフィックスプリミティブが実装されており、カイロもそうです。私が見ることができる唯一の理由は、Qtの重い層があなたのシステム(組み込み?)を妨げたくないということです。カイロのDirectFBバックエンドを使用しようとしているようですが、Qt-on-DirectFBのようなものがあります。しかし、そのような実装は、ライブラリの相互運用性の問題、このカイロベースのコンテキストからの印刷など、独自のクォークセットなしではコストがかかり、無料ではないことに注意してください。私は、Googleでこのような努力があれば、これまでにも試行錯誤が繰り広げられていました。

+0

より答えはkです。 シンプルなグラフィックスライブラリと、非常にeasgly togheterで動作するGUIライブラリが必要です。描画用のGUIライブラリ関数を使用したくありません。私はカイロが使いやすく、ベクターベースなので好きです。たぶん別のGUIライブラリをお勧めします。 – Andrei

+0

これは私が理解していない部分です。なぜあなたはQtを使いたくないのですか?たぶん、代替案を提案することができます。 QtはGUI以上です。グラフィックライブラリは、GUIライブラリよりも抽象度が低くなっています。 IMHO、あなたは一歩踏み込んでいます。 GTK +は別のGUIライブラリ(カイロバックエンド付き)です。 – dirkgently

+0

Qtのグラフィック機能を試してみます。私はGTKを試しましたが、プロジェクトで使うのは苦痛です。 – Andrei

8

Qt's Paint Systemは非常に優れた描画ライブラリであり、ベクトルベースです。それはすでにそこにある。 GUIツールキットとしてQtを選ぶと、それは簡単にはできません。

+0

@amcこれは間違っています。ほとんどのペイントデバイスはラスターベースですが、[ベクターデバイスもあります](http://qt-project.org/doc/qt-5/qpaintengine.html#Type-enum):[QPdfWriter](http ://qt-project.org/doc/qt-5/qpdfwriter.html)。 'QPainter' API自体は、ほとんどがベクトルベースの操作で構成されています。それは単なるブリッタではありません。 – andref

1

は、この汚れによって達成することができます:。

  1. はカイロの画像を作成します。表面は、その表面に描く。
  2. コールcairo_image_surface_get_dataを()ピクセルを取得する。
  3. コピーQtのウィジェットへの画像。