编写项目符号和数字文本GTKTextView

时间:2010-10-13 12:11:33

标签: linux gtk

如何在Linux工作环境中使用GTKTextView添加项目符号和编号。

2 个答案:

答案 0 :(得分:1)

首先阅读Text Widget Overview

然后我认为你需要将GtkTextTag(用于格式化文本)与一些创造力结合起来。

这就是假设您需要子弹/编号列表。

答案 1 :(得分:0)

所以,我确实需要它,然后才实施它。这是我的方法。

    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(
        &gtk::TextTagBuilder::new()
            .name("list_item")
            .indent(-14)
            .left_margin(14)
            .wrap_mode(gtk::WrapMode::Word)
            .tabs(&tab_ar)
            .build(),
    );

(这很生锈,但是在其他语言中会类似)

要添加新项目符号,请在文本视图中插入“ 1. \ titem”或“•\ titem”(\ t为制表符),并带有“ list_item”标签。

以下是说明:

  1. 缩进仅适用于项目符号的第一行,如果项目符号的文本包含在多行中,则不适用于以下各行。在这种情况下,我们设置一个负指数。意味着与随后的换行相比,第一行将向左偏移。我们将使用该负偏移量放置项目符号或项目符号编号。
  2. 左边距适用于项目符号的所有行,包括换行。因此,整个项目符号文本会移到右侧
  3. 我们指定了两个标签:第一个标签为0px,第二个标签为14px。当我们输入文本“ 1. \ titem”,“ 1”时的含义。将在最左侧,“项目”将从14px开始

将所有这些放在一起...

项目符号的第一行从水平偏移量14px(左边界)到-14px(缩进)=> 0px开始。在那里我们放“ 1”。然后有一个\ t,所以我们偏移14px。然后,文字自动换行。 在第二行(如果项目符号不适合一行),文本以14px(左边距)开始。缩进不适用。所以我们保持在14px。

在屏幕截图中...蓝色是空白,红色是缩进,绿色是第二个标签。您会看到一切都井井有条。

screenshot

为确保100%安全,最好测量“ 1”的宽度。并添加一些百分比的安全性,然后在用户使用较大字体或类似字体的情况下,将其用作偏移而不是14px。