我可以在没有 gtk_init() / gtk_main() 的情况下使用 GtkTextView 小部件吗?
can I use GtkTextView widget without gtk_init() / gtk_main()?
我目前使用 cairo/pango 从动态文本生成原始图像数据。我的应用程序不是 Gtk+ GUI 应用程序,只是一个原生 C++ 无头视频服务器。使用动态文本,我为覆盖生成原始图像,然后将它们在服务器处理的视频流上进行 alpha 混合,并通过网络分发。此文本不涉及文本编辑,但给定文本我会生成适合 alpha 混合的相应图像叠加层。
但是,我需要更多的格式灵活性(缩进、居中对齐等)。在 cairo/pango 中进行大量格式化很痛苦。
我一直在查看 GtkTextView/GtkTextBuffer API,我认为使用 GtkTextTag 进行格式化更容易。这些小部件显然具有广泛的编辑功能,但我只需要格式化功能。
问题:我可以使用 GtkTextView/GtkTextBuffer/GtkTextTag 没有 运行 主 gtk+ 循环通过 gtk_init()/gtk_main() ?
问题:如何获取对原始格式化缓冲区(cairo 图像表面或小部件 pixbuf)的引用在所有标签都格式化文本之后?
我一直在使用 gtk_widget_get_pango_context()、pango_layout_new()、gtk_widget_create_pango_layout() 例程,但由于没有屏幕而出现各种错误。
编辑:附加信息:我想做的是基本上只使用 GtkTextView/GtkTextBuffer/GtkTextTag 例程作为一种独立的库来生成渲染和格式化文本的图像数据。
谢谢,
-安德烈斯
我目前使用 cairo/pango 从动态文本生成原始图像数据。我的应用程序不是 Gtk+ GUI 应用程序,只是一个原生 C++ 无头视频服务器。使用动态文本,我为覆盖生成原始图像,然后将它们在服务器处理的视频流上进行 alpha 混合,并通过网络分发。此文本不涉及文本编辑,但给定文本我会生成适合 alpha 混合的相应图像叠加层。
但是,我需要更多的格式灵活性(缩进、居中对齐等)。在 cairo/pango 中进行大量格式化很痛苦。
我一直在查看 GtkTextView/GtkTextBuffer API,我认为使用 GtkTextTag 进行格式化更容易。这些小部件显然具有广泛的编辑功能,但我只需要格式化功能。
问题:我可以使用 GtkTextView/GtkTextBuffer/GtkTextTag 没有 运行 主 gtk+ 循环通过 gtk_init()/gtk_main() ?
问题:如何获取对原始格式化缓冲区(cairo 图像表面或小部件 pixbuf)的引用在所有标签都格式化文本之后?
我一直在使用 gtk_widget_get_pango_context()、pango_layout_new()、gtk_widget_create_pango_layout() 例程,但由于没有屏幕而出现各种错误。
编辑:附加信息:我想做的是基本上只使用 GtkTextView/GtkTextBuffer/GtkTextTag 例程作为一种独立的库来生成渲染和格式化文本的图像数据。
谢谢, -安德烈斯