目录
输入类控件QTextEdit
例子:获取多行输入框的内容
例子:验证输入框的各种信号
输入类控件QTextEdit
QTextEdit表示多行输入框,也是一个富文本&markdown编辑器。
并且能在内容超出编辑框范围时自动提供滚动条
在Qt中,有俩种表示多行输入框
- QTextEdit:不仅能表示纯文本,还可以表示html和markdown
- QPlainTextEdit:只能表示纯文本(Plain Text)
核心属性
| 属性 | 说明 |
|---|---|
| markdown | 输⼊框内持有的内容. ⽀持 markdown 格式. 能够⾃动的对markdown ⽂本进⾏渲染成 html |
| html | 输⼊框内持有的内容. 可以⽀持⼤部分 html 标签. 包括 img 和 table 等. |
| placeHolderText | 输⼊框为空时提⽰的内容 |
| readOnly | 是否是只读的 |
| undoRedoEnable | 是否开启 undo / redo 功能.(撤销) 按下 ctrl + z 触发 undo 按下 ctrl + y 触发 redo |
| autoFormating | 开启⾃动格式化 |
| tabstopWidth | 按下缩进占多少空间 |
| overwriteMode | 是否开启覆盖写模式 |
| acceptRichText | 是否接收富⽂本内容 |
| verticalScrollBarPolicy | 垂直⽅向滚动条的出现策略
|
| horizontalScrollBarPolicy | ⽔平⽅向滚动条的出现策略
|
核心信号
| 信号 | 说明 |
|---|---|
| textChanged() | ⽂本内容改变时触发 |
| selectionChanged() | 选中范围改变时触发 |
| cursorPositionChanged() | 光标移动时触发 |
| undoAvailable(bool) | 可以进⾏ undo 操作时触发 |
| redoAvailable(bool) | 可以进⾏ redo 操作时触发 |
| copyAvaiable(bool) | ⽂本被选中/取消选中时触发 |
例子:获取多行输入框的内容
(1)创建一个多行输入框和一个label

(2)初始化文本为空,给多行输入框添加slot函数,处理textChanged信号。
textChagned提供了toPlainText、toMarkdown和toHtml获取文本内部

(3)输入到label中

【注意】这种情况下,输入的“一段文本”不是敲到输入框里面,而是输入的输入法提供的窗口里。当按下空格或者回车的时候,输入法的内容才会进入到输入框内,所谓的输入法,其实就是一个单独的窗口。


代码展示:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//初始化 label 为空
ui->label->setText(" ");
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_textEdit_textChanged()
{
//获取此时文本中的内容
const QString& text = ui->textEdit->toPlainText();
//将文本中的内容放到label中
ui->label->setText(text);
}
例子:验证输入框的各种信号
(1)创建一个文本框

(2)使用qDebug()的方式进行测试型号
按下ctrl + z后撤销





























