QLineEdit、QTextEdit 、QPlainTextEdit 各自的使用场景

QLineEdit

QLineEdit是一个单行文本输入框。

QLineEdit允许用户输入和编辑单行纯文本,提供了很多有用的编辑功能,包括:撤消和重做、剪切和粘贴、以及拖放(见setDragEnabled())。

通过改变输入框的echoMode(),同时也可以设置为一个“只写”字段,用于输入密码等。

//限制最长输入 128 位
lineEdit->setMaxLength(128);
//不可写入
lineEdit->setEchoMode(QLineEdit::NoEcho);
//密码*号输入
lineEdit->setEchoMode(QLineEdit::Password);

 多种 echoMode()

switch (index) {
case 0:
//默认,输入什么即显示什么
echoLineEdit->setEchoMode(QLineEdit::Normal);
break;
case 1:
//密码,一般是用小黑点覆盖你所输入的字符
echoLineEdit->setEchoMode(QLineEdit::Password);
break;
case 2:
//编辑时输入字符显示输入内容,否则用小黑点代替
echoLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
break;
case 3:
//任何输入都看不见(只是看不见,不是不能输入)
echoLineEdit->setEchoMode(QLineEdit::NoEcho);
}

 LineEdit编辑框限制数字输入整理

//显示输入指定范围的整数
ui->lineEdit->setValidator(new QIntValidator(1,1000,this)); // [1,1000]范围内的整数输入
ui->lineEdit->setValidator(new QDoubleValidator(0.1,0.9,2,this)); // [0.1,0.9],小数点后2位
ui->lineEdit->setValidator(new QRegularExpressionValidator(QRegularExpression("^[(\\s|\\S)+]{0,200}$"),this)); // 输入200个字符


//只输入数字,小数点和负号
QRegExp exp("[0-9\\.-]+$");
QValidator *Validator = new QRegExpValidator(exp);
ui->lineEdit->setValidator(Validator);

//ip地址输入
QString exp = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
QRegExp rege(exp);
QValidator *Validator = new QRegExpValidator(rege);
ui->lineEdit->setValidator(Validator);

只能输入数字

//整数
QRegExp exp("^-?[0-9]+$");
QValidator *Validator = new QRegExpValidator(exp);
ui->lineEdit_PageIndexList->setValidator(Validator);

数据

//实数
QRegExp exp("^-?[0-9\\.]+$");
QValidator *Validator = new QRegExpValidator(exp);
ui->lineEdit->setValidator(Validator);

//正整数
QRegExp exp("^0?[.]\\d+$");
QValidator *Validator = new QRegExpValidator(exp);
ui->lineEdit->setValidator(Validator);

//正的小数
QRegExp exp("^[1-9]\\d+$");
QValidator *Validator = new QRegExpValidator(exp);
ui->lineEdit->setValidator(Validator);

QTextEdit

多行,富文本编辑器,也可以显示HTML格式文本;

QTextEdit* m_textShower;//显求读取文件内容的文本

m_textShower = newQTextEdit;

(1)设置字体的方法
QFonttextFont;

textFont.setPointSize(16);

m_textShower->setFont(textFont);

(2)设置编辑为只读属性的方法
m_textShower->setReadOnly(true);

(3)设置文字的方法

QTextCursorcsor = m_textShower->textCursor();

csor.movePosition(QTextCursor::Start);

csor.insertText(fileContext);

(4)清除文字的方法
m_textShower->clear();

文本可以使用setSelection()或selectAll()来选中,选中的文本可以被cut()、copy()和paste(),使用setAlignment()来设置文本的对齐方式。

很强大;

QPlainTextEdit

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

QPlainTextEdit 可以理解为 QTextEdit的低配版。QPlainTextEdit支持纯文本显示,QTextEdit支持富文本显示。就是多一个样式。
QPlainTextEdit显示的效率比QTextEdit高,如果需要显示大量文字,尤其是需要滚动条来回滚动的时候,QPlainTextEdit要好很多。

常用方法

//追加一行字符串
appendPlainText()
//将QPlainTextEdit组件中的文本转为字符串
toPlainText()

//逐行读取字符串有些麻烦,QPlainTextEidt以QTextDocument类型存储数据
document()成员函数,可以返回文件对象指针QTextDocument
//是内存中的文本对象,以文本块方式存储,以回车符判断文本块,也就是说一般一行为一个文本块
QTextDocument
//QTextDocument的成员函数,读取文本块,序号从0开始,读出的文本块为QTextBlock类型,可以再通过text()成员函数获取文本QString

findBlockByNumber(int)
//成员函数,可以获取QTextDocument文本块个数,用来遍历文本块
blockCount()