gtk在textview中打开斜体,粗体等

时间:2017-06-08 01:01:58

标签: gtk3

[修订]

我正在尝试使用GT中的GTK3 TextView。我知道如何将标记(例如斜体等)应用于文本区域。

但是如何在缓冲区中键入“打开”样式(斜体,粗体等)?例如,假设我正在键入文本,并且没有设置样式。然后我想输入斜体。我想将斜体标签应用于插入点,之后我输入的任何内容都将以斜体显​​示。

我注意到当您将插入光标放在任何现有样式文本的右侧时,前一个字符的标记将被继承,但前提是该样式在插入点之前和之后有效。有趣的是,尾随换行符可以被样式化,因此当插入点位于一行的末尾并且最后一个可见字符具有样式时,则继承该样式。

我查看了一些使用按键信号的方法,然后将文本标签应用到刚刚输入的未标记字符的区域,但这很慢并且在屏幕上看起来很奇怪 - 显示纯字符和然后用标记的字符替换。

我也试过了:

gtk_text_buffer_insert_markup(buf, &iter, "<i>", -1);

但会收到警告:Invalid markup string: ... Element 'markup' was closed, but the currently open element is 'i'并且对显示的文字没有影响。使用<i></i>不会收到警告但也没有效果。我终于求助于:

gtk_text_buffer_insert_markup(buf, &iter, "<i> </i>", -1); // 2 spaces gtk_text_iter_backward_char (&iter); gtk_text_buffer_place_cursor(buf, &iter);

让我开始在两个新空格之间输入斜体 - 这并不是那么糟糕。

但是点击“我”按钮开始用斜体键入 - 这是一个已经存在了几十年的基本编辑功能。在某种程度上GTK必须是可能的吗?

有什么想法吗?

感谢

0 个答案:

没有答案