Qt更改文本
Qt get text changed
好吧,我们有一个私有的slot方法textChanged,当textEdit对象被修改时,它会通知我们。这个实现相当健壮,当使用键盘、复制和粘贴以及其他大多数操作插入文本时,它会通知我们。
然而,是否有任何方法可以获得更改后的实际文本?
正如Igor所说,您可以使用QTextDocument
。使用此代码示例:
Do连接:
connect( ui->textEdit->document(), SIGNAL(contentsChange(int,int,int)), this, SLOT(change(int,int,int)));
创建插槽:
void MainWindow::change(int pos, int del, int add)
{
QString added = ui->textEdit->toPlainText().mid(pos,add);
qDebug() << added;
}
标题中:
void change(int, int, int);
现在您可以获得粘贴或键入在QTextEdit
中的文本
关于绩效。让我们试验一下。写入此插槽。
void MainWindow::clicked(int pos, int del, int add)
{
QElapsedTimer tmr;
tmr.start();
QString added = ui->textEdit->toPlainText().mid(pos,add);
qDebug() << added;
qDebug() << "operation tooks" << tmr.elapsed() <<" ms";
}
别忘了#include <QElapsedTimer>
输入时输出:
operation tooks 0 ms
"f"
operation tooks 0 ms
"d"
operation tooks 0 ms
"g"
operation tooks 0 ms
"r"
operation tooks 0 ms
"d"
operation tooks 0 ms
"s"
operation tooks 0 ms
"f"
operation tooks 0 ms
粘贴包含空格的7817个字符的文本时输出:
...long text...
operation tooks 0 ms
在你的电脑上试试,我认为这是正常的效率。
相关文章:
- QPainter 将 QBrush 设置为 在 QT/C++ 中绘制文本
- 无法将行编辑中的文本打印到 Qt C++ 中的标签
- 如何在 qt c++ 中更新 QWindow,文本不显示
- 试图打开并读取一个.txt文件,但它从原始文件中删除了实际文本(Qt GUI C++
- 在QT C++编辑Qtable模型数据时,我需要得到一个小盒子,我需要显示编辑文本,这怎么可能?
- QT 标签 setText() 同时保留文本格式
- Qt读取文本文件的一些信息
- 在 Qt C++ 中在自定义项委托上绘制文本时的性能问题
- Qt - 右键单击时编辑按钮文本
- 写入文本文件错误,QT
- Qt - 在QGraphicScene中拖放时如何从项目中获取文本?
- QT 创建器只会将第一个单词从文本编辑转换为纯文本
- QT 将文本翻译成特定的区域设置
- 文本颜色 QPlainTextEdit QT
- 使用文本格式来记录QT
- 使用C QT从当前窗口中获取所选文本
- Qt cpp - 将QString写入文本文件的干净方法
- 根据组合框中所选项目设置标签文本 (QT/C++)
- 无法更新文本编辑文本 QT
- 如何从按钮文本qt中删除和安全