问题标签 [gtk-textbuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
53 浏览

text - Vala TextBuffer backspace() SIGSEG

为了练习在 Vala 上写作,我决定制作一个虚拟键盘。一切正常,除了退格(如果按下 SIGSEG)。

https://developer.gnome.org/pygtk/stable/class-gtktextbuffer.html#method-gtktextbuffer--end-user-action 我没有找到在 Vala 中使用这个函数的任何例子。 资源

0 投票
1 回答
82 浏览

python - 使用 TextBuffer pyGtk 正确显示标签

我在玩 pygtk 来构建我的小项目,它使用 gtk,基本上有一个窗口,在这个窗口中我有一个树形视图,在树形视图内有一个 gtk.liststore。

这是带有窗口及其值的图像

一切都很酷,直到我意识到我需要一些标签,看到很多使用 pango 的示例,并且它是有效的,至少在选择的行被更改之前。

我用一些不太优雅的东西解决了这个问题, 这里有一个完整代码的链接

基本上,当我单击工具栏下划线按钮时,此方法会将 <u></u> 放在一个单词周围,它的值将放置在 liststore 中,并使用 textview 显示该值。如果至少 set_text 检测到这些语法,这将是完美的。

所以,我想要实现的是在 textview 显示标记的单词,当我更改行并返回上一个标记的行时,它仍然显示标记的单词,例如,如果我在一个单词下划线,它仍然当我回来时下划线,如果解决方案涉及使用 pango,我怎样才能从中获取值以供以后使用。

到目前为止,我尝试的是搞乱 textbuffer.serialize 和 textbuffer.deserialized,但它并没有按我的意愿工作。

编辑

就像这里我将下划线标记应用于“纸张”,序列化文本缓冲区,将其放入变量中,但我怎样才能将它传递回缓冲区?

打印变量'exported'我得到一个字节值:

编辑 2

这可能很明显,但对我来说不是,如果我有一个序列化的东西,接下来我需要做的只是“反序列化”它,为此有gtk.TextBuffer.deserialize

语法应该是这样的:

问题是,当我在尝试之前尝试将反序列化放在错误的位置时,它什么也没做。现在我可以更轻松地跟踪标签的位置等。我只需要运行更多测试。

0 投票
1 回答
58 浏览

python - 如何使用 PyGTK 的 TextBuffer.register_serialize_format?

我现在正在使用序列化反序列化,当用 utf-8 解码序列化的文本缓冲区时,我得到了这个:

我正在尝试使用一些 html 标签来应用标签<u></u><b></b>,就像我之前问过的那样,它作为重复项被关闭了,我会以不同的方式提出要求。那么,如果这些标签都以 结尾,我怎么能知道它们在哪里结束</apply_tag>,而不是像</apply_tag name="nameoftag">我之前尝试过的那样:

但是内部标签有一个问题,它们会在不应该的地方关闭。我想也许答案是gtk.TextBuffer.register_serialize_format因为我认为这应该使用我传递给它的 mime 序列化,比如 html,然后我应该知道标签在哪里结束。但我没有发现任何广泛友好使用它的例子。

0 投票
1 回答
120 浏览

python - 如何修改gtk textview的部分文本

我用 Python 学习 GTK,但小部件有问题texview。我想更改/修改缓冲区 ( textview) 中文本的特定部分。

例如,文本缓冲区:

[WORD TO REPLACE]我想用a 的值替换部分Gtk.Entry。我知道如何在缓冲区的末尾添加条目,但我无法从文本本身内部进行替换。

整个代码:

欢迎任何想法。谢谢。

0 投票
0 回答
41 浏览

c - GTK+ 3 TextView 在 C 中使用 Iters 标记和标签

我是一个初学者,只是一个学习 C 和 GTK 的爱好者,并且一直在努力阅读 textview / buffer / iter 的文档,并用一个简单的自我挑战项目标记我的挑战是让一个 < 符号在键入时突出显示想法是标记不同类型的开括号,直到它们关闭,这样当输入 > 时,将不再突出显示开括号。所以我有第一部分工作并且 < 符号将突出显示所以我的问题是我是如何做到的是否接近它应该读的样子,以及放置开始和结束标签的位置是否正确。

0 投票
1 回答
44 浏览

c - GTK TextBuffer ,查找整个单词

我正在尝试将 GTK textview 中隔离的单词与关键字列表进行比较,但似乎无法弄清楚如何做到这一点。我在 C 中工作(学习)。

我通过文本缓冲区逐字移动 iters,然后尝试

所以最终可以以 word[1] 作为“auto”,而迭代器在 textview 中找到“auto”这个词。但无法找到一种方法来比较它们以确认匹配。尝试使用 gtk_text_iter_forward_search() 会导致在自动移动设备中突出显示“自动”。

我已经尝试过'strcmp()',但无论文本视图中有什么,它总是返回 true。

我正在研究语法高亮之类的东西,并且有注释、单引号/双引号、转义序列/格式说明符和数字都能够突出显示,但我一直坚持在单词上突出显示,任何朝着正确方向的轻推都会受到赞赏。

0 投票
0 回答
14 浏览

c - 如何从 GtkTextBuffer 获取 Pango 标记文本?

我试图从中获取样式化的 Pango 文本,gtk_text_buffer_get_text()但它给了我非样式化的文本。你知道我获取样式文本或将其保存到文件的方法吗?此文本样式为gtk_text_buffer_create_tag()and gtk_text_buffer_insert_with_tags_by_name(),不带 Pango 标签