2

我正在编写一个应用程序[实际上是一个 Pidgin 插件],它将嵌入的图像插入到 GtkTextBuffer 中。目前,我使用以下方法添加它:

gtk_text_buffer_insert_pixbuf(textBuffer, &iter, pixbuf);

但是,这只是将图像与文本“内联”。我正在寻找的是类似于 HTML 的“浮动”的东西。例如,假设我的图像大约是一行文本大小的两倍,我目前得到这个 [其中 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

1 回答 1

4

最简洁的答案是不; TextView 中的图像仅被视为一个字符(可能比通常的字符大很多)。HTML 意义上没有任何布局引擎。(布局仅限于 PangoLayout 可以做的事情。)

您可能可以使用以下方法一起破解某些东西:

  • 在段落上留出图像大小的边距
  • 添加一个暴露事件处理程序以将图像绘制到窗口(请参阅我认为在 gtk-demo 或文档中的“边框窗口”示例,但绘制到主窗口而不是边框​​窗口)

一些工作量,但它可能会完成工作。

于 2011-02-07T16:41:38.553 回答