QT学习 控件(二)输入文本类

news/2024/11/17 3:54:16/

文章目录

  • 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()<<edit->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()<<str;});//textChanged文本改变时触发,包括settext//connect(edit,&QLineEdit::textChanged,this,[](const QString& str){qInfo()<<str;});//回车触发connect(edit,&QLineEdit::returnPressed,this,[=](){qInfo()<<edit->text();});//编辑完成时触发//光标位置发生变化时//选择改变时connect(edit,&QLineEdit::selectionChanged,this,[=](){qInfo()<<edit->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()<<str;});//textChanged文本改变时触发,包括settextconnect(edit,&QLineEdit::textChanged,this,[](const QString& str){qInfo()<<str;});//回车触发connect(edit,&QLineEdit::returnPressed,this,[=](){qInfo()<<edit->text();});//编辑完成时触发//光标位置发生变化时//选择改变时connect(edit,&QLineEdit::selectionChanged,this,[=](){qInfo()<<edit->selectedText();});

QTextEdit

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

构造函数:

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

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

多种格式的输入:

//设置普通文本
tedit->setPlaceholderText("请输入你的简介");
//设置HTML
tedit->setHtml("<h1>999999daw,666</h1>");
//插入一个Html
tedit->insertHtml("我爱你");
//设置MarkDown
tedit->setMarkdown("# 一级标题\n - 选项一\n - 选项二");

文本的获取:

//输出普通文本
qInfo()<<tedit->toPlainText();
//输出Html型文本
qInfo()<<tedit->toHtml();
//输出MarkDown型文本
qInfo()<<tedit->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("<a href='https://www.baidu.com'>百度一下</a>"));

插入列表
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);

http://www.ppmy.cn/news/7685.html

相关文章

前端面试题之计算机网络篇--HTTP协议

HTTP协议 1. GET和POST的请求的区别 GET和POST方法 GET和POST方法都是HTTP中的方法 什么是 HTTP&#xff1f; 超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff0c;缩写 HTTP&#xff09;旨在启用客户端和服务器之间的通信。 HTTP 充当客户端和服务器之间的…

花费数小时,带你学透Java数组,这些常用方法你还记得吗?

推荐学习专栏&#xff1a;Java 编程进阶之路【从入门到精通】 文章目录1. 数组2. 一维数组2.1 声明2.2 初始化2.3 使用3. 二维数组3.1 声明3.2 初始化3.3 使用4. 数组在内存中的分布5. 数组常用的方法5.1 Arrays.toString方法5.2 Arrays.copyOf方法5.3 Arrays.copyOfRange方法5…

Qt编写雷达模拟仿真工具1-背景布局

一、前言 雷达模拟仿真工具&#xff0c;整体结构采用的QGraphicsView框架&#xff0c;背景布局采用的分层绘制&#xff0c;这样可以控制该需要重新绘制的重新绘制&#xff0c;不需要重新的绘制的就没必要再多余的浪费&#xff0c;这里定义了一个GraphicsBackGroundItem类继承自…

freeswitch的gateway实现出中继的主备方案

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 某些呼叫场景中&#xff0c;我们有2条出中继线路可选&#xff0c;2条出中继需要按照主备模式来配置&#xff0c;优先使用主中继呼叫&#xff0c;当主中继出现问题时&#xff0c;呼叫自动转移到备用中继呼叫。 本节中&a…

C语言基础 — ( 顺序程序设计[ 运算符、表达式 ] )

欢迎小伙伴的点评✨✨ 本篇章系列是对C语言的深度思考和总结、关于C语言内容会持续更新。 文章目录前言一、C运算符1.1、算数运算符1.2、关系运算符1.3、逻辑运算符1.4、位运算符1.5、赋值运算符1.6、条件运算、指针运算、字节运算1.7、C中的运算优先级二、不同类型数据间的混合…

Spring boot分布式链路追踪

Spring boot分布式链路追踪前言演示项目核心依赖一、系统配置文件 日志文件路径配置二、日志文件 logback.xml 其中重要的标志是“requestId”字眼三、配置全局拦截器 RequestIdTraceInterceptor.java 拦截交互请求带有 “requestId” 字眼的值四、实际使用五、效果展示 MDC.pu…

UDS-10.4 SecurityAccess (27) service

10.4 安全访问(27)服务 来自&#xff1a;ISO 14229-1-2020.pdf 10.4.1 服务描述 本服务的目的是提供一种访问数据和/或诊断服务的方法&#xff0c;这些数据和/或诊断服务由于安全、排放或安全原因而被限制访问。用于将例程或数据下载/上传到服务器以及从服务器读取特定内存位置…

Python常用函数笔记汇总2

1.分组汇总groupby 2.计算空值 # py计算空值 data.isnull().sum(axis0) data.notnull().sum(axis0)# py去重计数 data_op[id_num_op].value_counts().size data_op[id_num_op].size3.保留两位小数 # predict_proba保留两位小数 gnb GaussianNB() pre gnb.fit(X_train,y_tr…