2

私は、GtkTextBuffer に埋め込まれた画像を挿入するアプリケーション [実際には Pidgin プラグイン] を作成しています。現在、次を使用して追加します。

gtk_text_buffer_insert_pixbuf(textBuffer, &iter, pixbuf);

ただし、これは画像をテキストに「インライン」で配置するだけです。私が探しているのは、HTML の「float」に似たものです。たとえば、私の画像がテキスト行の約 2 倍のサイズであると仮定すると、現在これを取得しています [X は画像です]

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam gravida

XXXX
XXXX ante in massa dignissim aliquam. Nullam tempus quam luctus eros volutpat laoreet. 

XXXX
XXXX sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Mauris semper, nunc quis gravida molestie,

leo neque imperdiet nulla, vel consectetur nisi nisl non metus. Maecenas pharetra
magna nec magna mattis faucibus convallis nibh  

理想的には、次のものが必要です。

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam gravida

XXXX ante in massa dignissim aliquam. Nullam tempus quam luctus eros volutpat laoreet.
XXXX

XXXX sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
XXXX Mauris semper, nunc quis gravida molestie,

leo neque imperdiet nulla, vel consectetur nisi nisl non metus. Maecenas pharetra
magna nec magna mattis faucibus convallis nibh 

4 つの段落があり、2 番目と 3 番目の段落には最初に画像があることに注意してください。

これは可能ですか?

4

1 に答える 1

4

短い答えはノーです。TextView の画像は文字として扱われます (通常の文字よりもかなり大きい場合があります)。HTML の意味でのレイアウト エンジンはありません。(レイアウトは、PangoLayout が実行できるものに限定されます。)

次のようなアプローチを使用して、おそらく何かを一緒にハックできます。

  • 段落に画像のサイズの余白を残す
  • 画像をウィンドウに描画するためのエクスポーズ イベント ハンドラーを追加します (gtk-demo またはドキュメントのどこかにあると思われる「ボーダー ウィンドウ」の例を参照してください。ただし、ボーダー ウィンドウではなくメイン ウィンドウに描画します)。

多少の作業は必要ですが、おそらく作業は完了します。

于 2011-02-07T16:41:38.553 に答える