• qt QLineEdit、QTextEdit 、QPlainTextEdit区别


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

    QLineEdit

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

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

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

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

     多种 echoMode()

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

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

    1. //显示输入指定范围的整数
    2. ui->lineEdit->setValidator(new QIntValidator(1,1000,this)); // [1,1000]范围内的整数输入
    3. ui->lineEdit->setValidator(new QDoubleValidator(0.1,0.9,2,this)); // [0.1,0.9],小数点后2位
    4. ui->lineEdit->setValidator(new QRegularExpressionValidator(QRegularExpression("^[(\\s|\\S)+]{0,200}$"),this)); // 输入200个字符
    5. //只输入数字,小数点和负号
    6. QRegExp exp("[0-9\\.-]+$");
    7. QValidator *Validator = new QRegExpValidator(exp);
    8. ui->lineEdit->setValidator(Validator);
    9. //ip地址输入
    10. QString exp = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
    11. "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
    12. "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
    13. "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
    14. QRegExp rege(exp);
    15. QValidator *Validator = new QRegExpValidator(rege);
    16. ui->lineEdit->setValidator(Validator);

    只能输入数字

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

    数据

    1. //实数
    2. QRegExp exp("^-?[0-9\\.]+$");
    3. QValidator *Validator = new QRegExpValidator(exp);
    4. ui->lineEdit->setValidator(Validator);
    5. //正整数
    6. QRegExp exp("^0?[.]\\d+$");
    7. QValidator *Validator = new QRegExpValidator(exp);
    8. ui->lineEdit->setValidator(Validator);
    9. //正的小数
    10. QRegExp exp("^[1-9]\\d+$");
    11. QValidator *Validator = new QRegExpValidator(exp);
    12. ui->lineEdit->setValidator(Validator);

    QTextEdit

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

    1. QTextEdit* m_textShower;//显求读取文件内容的文本
    2. m_textShower = newQTextEdit;
    3. (1)设置字体的方法
    4. QFonttextFont;
    5. textFont.setPointSize(16);
    6. m_textShower->setFont(textFont);
    7. (2)设置编辑为只读属性的方法
    8. m_textShower->setReadOnly(true);
    9. (3)设置文字的方法
    10. QTextCursorcsor = m_textShower->textCursor();
    11. csor.movePosition(QTextCursor::Start);
    12. csor.insertText(fileContext);
    13. (4)清除文字的方法
    14. m_textShower->clear();

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

    很强大;

    QPlainTextEdit

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

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

    常用方法

    1. //追加一行字符串
    2. appendPlainText()
    3. //将QPlainTextEdit组件中的文本转为字符串
    4. toPlainText()
    5. //逐行读取字符串有些麻烦,QPlainTextEidt以QTextDocument类型存储数据
    6. document()成员函数,可以返回文件对象指针QTextDocument
    7. //是内存中的文本对象,以文本块方式存储,以回车符判断文本块,也就是说一般一行为一个文本块
    8. QTextDocument
    9. //QTextDocument的成员函数,读取文本块,序号从0开始,读出的文本块为QTextBlock类型,可以再通过text()成员函数获取文本QString
    10. findBlockByNumber(int)
    11. //成员函数,可以获取QTextDocument文本块个数,用来遍历文本块
    12. blockCount()


     

  • 相关阅读:
    SQL Server教程 - SQL Server 复制(Replication)
    SpringBoot+Vue搭建Admin管理系统
    前端的一些知识点(会持续更新)
    淘宝/天猫优惠券查询接口 API 返回值说明
    SpringMVC之文件的上传下载(教你如何使用有关SpringMVC知识实现文件上传下载的超详细博客)
    3、Atomic原子操作类详解
    三.STM32F030C8T6 MCU开发之UART配置例程
    工厂模式解耦-交由spring来完成
    [附源码]java毕业设计ssm学生成绩考核管理系统
    2024年仁爱学院专升本招生专业对应范围专业目录更新的通知
  • 原文地址:https://blog.csdn.net/q610098308/article/details/125463545