Qt学习笔记(二十四):QLineEdit 和 QTextEdit 的常用方法

本文深入解析Qt中的QLineEdit和QTextEdit控件,涵盖文本编辑、富文本处理、自定义行为及验证器设置等功能,适用于界面设计与交互开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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() 方法时,会将选中的所有字符全部
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值