如何在Linux工作环境下使用GTKTextView添加项目符号和数字?
发布于 2010-10-13 20:36:40
首先从阅读Text Widget Overview开始
然后,我认为您需要将GtkTextTag (用于格式化文本)与一些创造性结合起来。
这都是假设您想要项目符号/编号列表。
发布于 2020-08-07 04:12:07
所以,我正是需要它,并实现了它。我是这样做的..
let mut tab_ar = pango::TabArray::new(2, true);
tab_ar.set_tab(0, pango::TabAlign::Left, 0);
tab_ar.set_tab(1, pango::TabAlign::Left, 14);
tag_table.add(
>k::TextTagBuilder::new()
.name("list_item")
.indent(-14)
.left_margin(14)
.wrap_mode(gtk::WrapMode::Word)
.tabs(&tab_ar)
.build(),
);(这是rust,但在其他语言中也类似)
要添加新项目符号,可以在文本视图中插入带有"list_item“标记的"1.\titem”或“·\titem”(\t为制表符)。
以下是解释:
如果项目符号的文本在多行中换行,则
开始
把所有这些放在一起。
项目符号的第一行从水平偏移14px (左边距) -14px (缩进) => 0px开始。我们把“1”放在那里。然后有一个\t,所以我们移动到偏移量14px。然后文本换行。在第二行(如果项目符号不能放在一行上),文本从14px (左边距)开始。缩进不适用。所以我们停留在14px。
在截图中。蓝色是页边距,红色是缩进,绿色是第二个制表符。你可以看到所有的东西都排列得很好。

为了100%安全,最好测量“1”的宽度。为了安全起见,添加一些百分比,然后使用此偏移量而不是14px,以防用户有更大的字体或类似的东西。
https://stackoverflow.com/questions/3923436
复制相似问题