返回顶部

QT控件使用--QPlainTextEdit

  QPlainTextEdit是一个多行文本编辑器,用于显示和编辑多行简单文本。

一些常用的函数有:

appendPlainText(const QString)

向 PlainTextEdit 组件添加一行字符串

QString toPlainText()

将全部文字内容输出为一个字符串

Int blockCount()

获得文本块个数(一个文本块是一个段落,一个段落以回车符结束

QTextBlock fmdBlockByNumber(int blockNumber)

读取某一个文本块,序号从 0 开始,至 blockCount()-1 结束

 

 逐行读取文本:

  QPlainTextEdit 的文字内容以 QTextDocument 类型存储。

  QTextDocument 是内存中的文本对象,以文本块的方式存储,一个文本块就是一个段落,每个段落以回车符结束。QTextDocument 提供一些函数实现对文本内容的存取:

  • int blockCount():获得文本块个数。
  • QTextBlock fmdBlockByNumber(int blockNumber):读取某一个文本块,序号从 0 开始,至 blockCount()-1 结束。

一个 document 有多个 TextBlock,从 document 中读取出的一个文本块类型为 QTextBlock,通过 QTextBlock::text() 函数可以获取其纯文本文字。

代码:

void Widget::on_btnToComboBox_clicked()
{
    //plainTextEdit的内容逐行添加为comboBox的项
    QTextDocument* doc=ui->plainTextEdit->document () ; //文本对象
    int cnt=doc->blockCount () ;//回车符是一个 block
    for (int i=0; i<cnt;i++)
    {
        QTextBlock textLine=doc->findBlockByNumber (i) ; // 文本中的一段
        QString str=textLine.text();
    }
}

  

实时显示使用plainTextEdit的信号cursorPositionChanged().

有自带快捷键菜单,使用信号customContextMenuRequested(),创建快捷菜单的槽函数代码如下:

    QMenu* menu=ui->plainTextEdit->createStandardContextMenu();
    menu->exec(pos);

 

posted @ 2020-04-10 11:13  Zoya23  阅读(4484)  评论(0编辑  收藏  举报