QT学习 控件(二)输入文本类
创始人
2024-05-02 17:32:31
0

文章目录

  • QLineEdit
  • QTextEdit
    • QTextCursor

QLineEdit

QLineEdit是最基本的输入控件,继承自QObject ,常用于短行的输入。

构造函数:

可以指定一个默认文本以及父窗口

 QLineEdit(const QString &contents, QWidget *parent = nullptr)QLineEdit(QWidget *parent = nullptr)

基本功能函数:

void Widget::testQLineEdit()
{//创建行编辑框edit=new QLineEdit("我是编辑框",this);//设置文本edit->setText("edit");qInfo()<text();//清空文本edit->clear();//设置显示文本edit->setEchoMode(QLineEdit::EchoMode::Normal);//表面上是什么,实际就输出什么edit->displayText();//设置提示文本edit->setPlaceholderText("手机号/QQ/邮箱");//设置清空按钮edit->setClearButtonEnabled(true);//设置图标行为edit->addAction(QIcon("cha.png"),QLineEdit::ActionPosition::TrailingPosition);//设置自动补全QStringList compstr;compstr<<"123456"<<"zhangsan"<<"111122233";QCompleter* comp=new QCompleter(compstr,this);edit->setCompleter(comp);//限制输入长度edit->setMaxLength(5);//设置只读edit->setReadOnly(true);//设置验证器(用于输入验证)QIntValidator* valdator=new QIntValidator(0,100,this);edit->setValidator(valdator);//设置格式输入(输入按指定格式的文本)edit->setInputMask("AAAA-AAAA-AAAA-AAAA");edit->setText("123456789");//信号:textEdited文本编辑时触发//connect(edit,&QLineEdit::textEdited,this,[](const QString& str){qInfo()<qInfo()<text();});//编辑完成时触发//光标位置发生变化时//选择改变时connect(edit,&QLineEdit::selectionChanged,this,[=](){qInfo()<selectedText();});
}

信号:

 void cursorPositionChanged(int oldPos, int newPos) 光标位置改变void editingFinished()	编辑完成的时候void inputRejected()	输入完成的时候void returnPressed()	输入回车的时候void selectionChanged() 选择改变的时候void textChanged(const QString &text)	文本改变的时候(包括settext)void textEdited(const QString &text) 	文本编辑的时候(只包括手动的编辑修改)

信号测试:

//信号:textEdited文本编辑时触发
connect(edit,&QLineEdit::textEdited,this,[](const QString& str){qInfo()<qInfo()<qInfo()<text();});//编辑完成时触发//光标位置发生变化时//选择改变时connect(edit,&QLineEdit::selectionChanged,this,[=](){qInfo()<selectedText();});

QTextEdit

QTextEdit常用于一段话的输入,常用于长文本,继承自滑块类QAbstractScrollArea,因此他是一个具有滑动条的长文本编辑框。

构造函数:

 QTextEdit(const QString &text, QWidget *parent = nullptr)QTextEdit(QWidget *parent = nullptr)

QTextEdit不仅像QLineEdit支持普通文本的输入,还支持Html,markdown等文本的输入。

多种格式的输入:

//设置普通文本
tedit->setPlaceholderText("请输入你的简介");
//设置HTML
tedit->setHtml("

999999daw,666

"); //插入一个Html tedit->insertHtml("我爱你"); //设置MarkDown tedit->setMarkdown("# 一级标题\n - 选项一\n - 选项二");

文本的获取:

//输出普通文本
qInfo()<toPlainText();
//输出Html型文本
qInfo()<toHtml();
//输出MarkDown型文本
qInfo()<toMarkdown();

QTextCursor

QTextCursor提供了由简单到复杂的对文本的插入操作,简单来说,你可以通过QTextCursor来插入东西到QTextEdit文本框中。

首先获取文本光标:任何插入都是基于光标的

QTextEdit* tedit=new QTextEdit(this);
QTextCursor cursor=tedit->textCursor();

支持的插入操作的类包括:
QTextFormat
QTextBlockFormat
QTextCharFormat:QTextImageFormat ;QTextTableCellFormat
QTextFrameFormat:QTextTableFormat
QTextListFormat


插入普通文本:

cursor.insertText("Hello World");

插入带格式的复杂文本:(设置文本的格式)
QTextCharFormat :文本格式设置类,用它可以对文本的格式化进行设置,它里面包含了许多对文本格式的set,例如setFontUnderline设置下划线,setBackground设置背景颜色。。。setfont设置格式。。

//设置文本的格式
QTextCharFormat tcf;
tcf.setAnchor(Qt::red);
tcf.setFontUnderline(Qt::blue);
tcf.setBackground(QBrush(Qt::yellow));
cursor.insertText("666",tcf);

插入图片,设置图片的格式
QTextImageFormat :图片格式设置类。

//插入图片,设置图片格式
QTextImageFormat tif;
tif.setName("cha.png");
cursor.insertImage(tif,QTextFrameFormat::Position::InFlow);

插入一段话(文档内容)
QTextDocumentFragment:类

cursor.insertFragment(QTextDocumentFragment::fromHtml("百度一下"));

插入列表
QTextListFormat 列表类

//插入列表   
QTextListFormat tlf;
cursor.insertList(tlf);//列表的设置
QTextCursor tcur=tedit->textCursor();
QTextListFormat tlf;
tlf.setNumberPrefix("<");
tlf.setNumberSuffix(">");
tlf.setStyle(QTextListFormat::ListDecimal);
tcur.insertList(tlf);

插入表格
QTextTableFormat 类

//插入表格
QTextTableFormat ttf;
ttf.setCellPadding(10);
//ttf.setBackground(Qt::blue);
cursor.insertTable(3,4,ttf);

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...