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);
多行,富文本编辑器,也可以显示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 可以理解为 QTextEdit的低配版。QPlainTextEdit支持纯文本显示,QTextEdit支持富文本显示。就是多一个样式。
QPlainTextEdit显示的效率比QTextEdit高,如果需要显示大量文字,尤其是需要滚动条来回滚动的时候,QPlainTextEdit要好很多。
常用方法
- //追加一行字符串
- appendPlainText()
- //将QPlainTextEdit组件中的文本转为字符串
- toPlainText()
-
- //逐行读取字符串有些麻烦,QPlainTextEidt以QTextDocument类型存储数据
- document()成员函数,可以返回文件对象指针QTextDocument
- //是内存中的文本对象,以文本块方式存储,以回车符判断文本块,也就是说一般一行为一个文本块
- QTextDocument
- //QTextDocument的成员函数,读取文本块,序号从0开始,读出的文本块为QTextBlock类型,可以再通过text()成员函数获取文本QString
-
- findBlockByNumber(int)
- //成员函数,可以获取QTextDocument文本块个数,用来遍历文本块
- blockCount()