目录
输入类控件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后撤销





























