如何从特定数字开始创建QTextList Decimal

时间:2017-11-20 04:41:06

标签: list qt formatting richtext qtextedit

我知道如何在QTextEdit中创建一个列表(参见下面的代码,这是最重要的部分)。我想知道我是否可以创建一个编号列表,从特定数字开始

例如,每次制作一个列表时:

  1. 从数字
  2. 开始
  3. 一。
  4. 但我想知道qt是否支持列表

    1. 开始
    2. 指定的任何数字。
    3. 在文档中,有QTextListFormat :: setNumberPrefix,但在我看来,数字之前出现了什么。感谢。

      中央功能:

      void CreateQuestionForm::list(bool checked, QTextListFormat::Style style) {
      QTextCursor cursor = ui->f_textedit->textCursor();
      cursor.beginEditBlock();
      if (!checked) {
          QTextBlockFormat obfmt = cursor.blockFormat();
          QTextBlockFormat bfmt;
          bfmt.setIndent(obfmt.indent());
          cursor.setBlockFormat(bfmt);
        } else {
          QTextListFormat listFmt;
          if (cursor.currentList()) {
              listFmt = cursor.currentList()->format();
              }
          listFmt.setStyle(style);
          cursor.createList(listFmt);
          }
      cursor.endEditBlock();
      }
      

1 个答案:

答案 0 :(得分:0)

QTextListFormat的功能。

每个块的编号样式。

它不会被keyEvents删除。

鼠标指针和键光标指针不在数字的前面和后面。

块缩进是标准化的。


不用QTextListFormat

  1. 使该功能决定您喜欢的号码。
  2. 覆盖键事件。
  3. 要覆盖mouseEvents。
  4. 为要插入的块设置缩进量。

1。进行决定您喜欢的号码的功能。

这取决于您的计划。 在大多数情况下,您控制QTextCursor并捕获其他数字信息。 然后您决定新的号码。我是这样。

2。覆盖键事件。

尤其是,您要注意Key_BackspaceKey_Delete,因为这会删除头的编号。

要防止其删除,请在(1或2)的blockInPosition处停止键盘操作。

因为要写 1。,依此类推。

要在条件句上写返回

3。覆盖mouseEvents。

如果要将textCursor放在块的开始,则必须注意它。 如果要单击该位置,请抓住文本光标,然后将其迅速移至正确位置并设置光标。

2&3可以阻止其选择。

4。为要插入的块设置缩进。

您可以在要插入列表时设置缩进。最终,我认为QTextListFormat的缩进是由该缩进制成的。


您应该停止专心QTextListFormat

如果您敢使用它,可以使用createList()和QTextListFormat的空样式格式。

由于一次确定样式,因此必须遵循自动项目符号。

您的选择都需要我的建议。