gtk - 插入 GTK+ 文本缓冲区的 pixbuf 可以设置为 "floating"吗?

标签 gtk gtk2

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

gtk_text_buffer_insert_pixbuf(textBuffer, &iter, pixbuf);

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

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

这可能吗?

最佳答案

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

您可能可以使用以下方法将某些东西组合在一起:

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

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

关于gtk - 插入 GTK+ 文本缓冲区的 pixbuf 可以设置为 "floating"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4922028/

相关文章:

mysql - 创建 gtk ListView 时出错

c - 按按钮暂停正在运行的功能

python - 如何在 Python GTK2 中将 GTK 条目设置为默认事件元素

c - 在 C 项目中编译 Libvlc 时出错

java - 强制java程序使用GTK2

perl - Perl 是编写独立于平台的桌面应用程序的好选择吗?

c++ - GTK3 OpenGL 视频渲染大部分为绿色 (YUV420P)

c - 类型 fatal error : gtk/gtk. h: Eclipse (Oxygen) 编译期间没有此类文件或目录

python - 如何使用 Python GTK3 (gi.repository) gdk_event_get_scroll_deltas() 方法

c - gtk_menu_item_new_with_labelex 与 gtk_menu_item_new_with_label