QLineEdit 是一个单行文本编辑框;
QTextEdit 是一个多行文本编辑框,还可以进行富文本编辑;
QPlainTextEdit 是一个多行纯文本编辑框,相当于简化版的 QTextEdit;
在界面上拉一个 lineEdit 控件,和几个按钮:

代码如下:
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QMessageBox>
#include <QLineEdit>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// QLineEdit 是一个单行文本编辑框
ui->lineEdit->setText("The QLineEdit widget is a one-line text editor.");
}
Widget::~Widget()
{
delete ui;
}
// 向左删除一位字符
void Widget::on_btnBackspace_clicked()
{
// void QLineEdit::backspace()
// 如果 lineEdit 中没有选中文本,则删除光标左侧的一个字符;
// 如果选择了任何文本,则将光标移动到所选文本的开头,并从移动到的新位置开始,删除左侧的一个字符;
ui->lineEdit->backspace();
}
// 向左选择一位字符
void Widget::on_btnCursorBackward_clicked()
{
// void QLineEdit::cursorBackward(bool mark, int steps = 1)
// 向左移动光标,移动的字符个数由参数 steps 决定,默认为 1,即向左移动一个字符;
// 如果参数 mark 为 true,则光标向左移动过程中 经过的每一个字符都处于选中状态;
// 如果参数 mark 为 false,则清除选中的内容;
ui->lineEdit->cursorBackward(true, 1);
// void QLineEdit::cursorForward(bool mark, int steps = 1)
// 用法和 cursorBackward 一样,只不过是改成光标向右移动而已;
// 获取当前光标所在的位置
int position = ui->lineEdit->cursorPosition();
qDebug() << "当前光标位置:" << QString::number(position);
}
// 向左选择一个单词
void Widget::on_btnCursorWordBackward_clicked()
{
// void QLineEdit::cursorWordBackward(bool mark)
// 将光标向左移动一个单词;如果参数 mark 为 true,则该单词处于选中状态;
ui->lineEdit->cursorWordBackward(true);
// void QLineEdit::cursorWordForward(bool mark)
// 用法和 cursorWordBackward 一样,只不过把光标改成向右移动;
}
// 删除光标右侧一个字符
void Widget::on_btnDel_clicked()
{
// 如果没有选择文本,则删除光标右侧的一个字符。
// 如果选择了任何文本,测试发现,选择文本的方式不同,删除的效果也不同:
// 1、如果用鼠标从左向右选择文本,则光标移动到选中文本的右侧,然后再把光标右侧的一个字符删除;
// 2、如果用鼠标从右向左选择文本,则光标移动到选中文本的左侧,然后再把光标右侧的一个字符删除;
// 即用鼠标选择文本时,调用 del() 方法是会从光标最后在所的位置开始,删除光标右侧的一个字符;
// 3、如果使用 cursorBackward 或者 cursorWordBackward 方法向左选择字符 或 单词时,
// 调用 del() 方法时,会将选中的所有字符全部