插入GTK +文本缓冲区的pixbuf可以设置为“浮动”吗?

时间:2011-02-07 13:49:36

标签: gtk gtk2

我正在编写一个应用程序[实际上是一个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 

请注意,有四个段落,其中第二个和第三个段落在开头有一个图像。

这可能吗?

1 个答案:

答案 0 :(得分:4)

简短的回答是否定的; TextView中的图像只被视为一个字符(可能比通常的字符大很多)。 HTML意义上没有任何布局引擎。 (布局仅限于PangoLayout可以执行的操作。)

你可能会使用如下方法一起破解某些东西:

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

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