0

我有一个包含 TextView 的 Vala/Gtk3 应用程序,它允许用户执行所有常用格式设置:粗体、斜体、下划线、删除线、文本和突出显示颜色以及字体设置——所有这些都通过切换按钮。它采用典型的apply_tag()apply_tag_by_name()方法。除了字体格式之外,一切都按预期工作。如果我选择一个句子的文本并将其设置为某种字体,然后将该句子中的一个或两个单词加粗或斜体,即使它出现在序列化的 XML 中,这种粗体/斜体格式也不会出现. 仅当将粗体/斜体格式与字体格式混合时才会出现此问题。下划线、删除线和颜色格式都适用于字体格式。有人知道这里发生了什么吗?下面是我创建的一个测试应用程序的按钮单击处理程序,其中只完成了粗体和字体格式(并且只使用普通按钮):

  // Handles a button clicked event.
  private void on_button_clicked(Gtk.Button button)
  {
     Gtk.TextIter start, end;

     if (textview.buffer.get_selection_bounds(out start, out end))
     {
        var tag_name = button.get_data<string>("tag");
        
        if (tag_name == "bold")
        {
           textview.buffer.apply_tag_by_name(tag_name, start, end);
        }
        else
        {
           var the_tag = textview.buffer.create_tag(null);
           the_tag.font = font_chooser_btn.font;
           textview.buffer.apply_tag(the_tag, start, end);
        }
     }
  }
4

0 回答 0