pixbuf(メモリ内のデータから)からロードした画像を表示しようとしていますが、画像は毎回更新されます(pixbufも時間とともに変化するため)。私の質問は、ウィンドウにはイメージ (定期的に更新されている) しか含まれないため、これには gtk ドローアブルまたは描画領域が必要ですか? または、単にウィンドウに画像を表示できますか? 別のオプションは、カイロを使用することです。誰かがそれを行う良い方法を提案できますか?
2 に答える
ファイルをpixbufにロードします。new_from_fileコンストラクターなどがあります。
はい、DrawingAreaを作成し、ボックスなどのどこかに貼り付けます。
次に、DrawingArea親ウィンドウを取得します(get_windowなどのメソッドがあります)。これがあなたのドローアブルになります。
GC(グラフィックスコンテキスト)を作成します-特別な値を設定する必要はありません。
DrawingAreaを公開イベントに接続します。公開イベントでは、作成したGCを使用してpixbufを使用してDrawableのdraw_pixbufメソッドを呼び出すようにします。
何らかの方法でpixbufを更新するときはいつでも、これと同じdraw_pixbufメソッドを呼び出します。
ファイルからロードしておらず、描画する場合は、代わりにピックスマップの使用を検討することもできます。ピックスマップ自体はDrawableであるため、長方形などを直接描画できます。DrawingAreaに表示する場合の唯一の実際の違いは、Drawableではdraw_pixbufではなくdraw_drawableメソッドを呼び出す必要があることです。
私はPerl/Gtk2を使用したメモリからこれを書いていることに注意してください、そしてそれはあなたが使用しているどの言語にもきれいにマッピングされないかもしれません。
AGtkImage
は問題なく動作し、リストしたすべてのものよりも単純です ;-)