- 博客主頁:Duck Bro 博客主頁
- 系列專欄:Qt 專欄
- 關(guān)注博主,后期持續(xù)更新系列文章
- 如果有錯誤感謝請大家批評指出,及時修改
- 感謝大家點贊??收藏?評論?
Qt常用控件 | 輸入類控件 | Text Edit的使用及說明
文章編號:Qt 學(xué)習(xí)筆記 / 29
一、QTextEdit介紹
1. 簡介
QTextEdit是Qt中的一個可編輯的文本框控件,可以用于顯示和編輯多行文本。 它是基于QPlainTextEdit的一個子類,提供了更豐富的功能。
QTextEdit可以用于顯示富文本,支持使用HTML或其他格式來設(shè)置文本的樣式,包括字體、顏色、大小、對齊方式等。 它還可以顯示圖像和鏈接,并且可以響應(yīng)用戶的點擊事件。
除了顯示富文本,QTextEdit還支持一些基本的文本編輯操作,如復(fù)制、剪切、粘貼和撤銷。它還提供了一些高級的編輯功能,如查找和替換、查看和修改文本的樣式、插入列表和表格等。
2. 常見屬性及說明
屬性 | 說明 |
---|---|
markdown | 輸?框內(nèi)持有的內(nèi)容. ?持 markdown 格式. 能夠?動的對markdown ?本進?渲染成 html |
html | 輸?框內(nèi)持有的內(nèi)容. 可以?持?部分 html 標(biāo)簽. 包括 img 和 table 等. |
placeHolderText | 輸?框為空時提?的內(nèi)容. |
readOnly | 是否是只讀的 |
undoRedoEnable | 是否開啟 undo / redo 功能. 按下 ctrl + z 觸發(fā) undo 按下 ctrl + y 觸發(fā) redo |
autoFormating | 開啟?動格式化. |
tabstopWidth | 按下縮進占多少空間 |
overwriteMode | 是否開啟覆蓋寫模式 |
acceptRichText | 是否接收富?本內(nèi)容 |
verticalScrollBarPolicy | 垂直?向滾動條的出現(xiàn)策略 ? Qt::ScrollBarAsNeeded : 根據(jù)內(nèi)容?動決定是否需要滾動條。這是默認(rèn)值。 ? Qt::ScrollBarAlwaysOff : 總是關(guān)閉滾動條。 ? Qt::ScrollBarAlwaysOn : 總是顯?滾動條。 |
horizontalScrollBarPolicy | ?平?向滾動條的出現(xiàn)策略 ? Qt::ScrollBarAsNeeded : 根據(jù)內(nèi)容?動決定是否需要滾動條。這是默認(rèn)值。 ? Qt::ScrollBarAlwaysOff : 總是關(guān)閉滾動條。 ? Qt::ScrollBarAlwaysOn : 總是顯?滾動條。 |
3. 重要信號及說明
信號 | 說明 |
---|---|
textChanged() | ?本內(nèi)容改變時觸發(fā) |
selectionChanged() | 選中范圍改變時觸發(fā) |
cursorPositionChanged() | 光標(biāo)移動時觸發(fā) |
undoAvailable(bool) | 可以進? undo 操作時觸發(fā) |
redoAvailable(bool) | 可以進? redo 操作時觸發(fā) |
copyAvaiable(bool) | ?本被選中/取消選中時觸發(fā) |
二、QTextEdit的使用(代碼示例)
1. 獲取多行輸入框的內(nèi)容
- 在界面中創(chuàng)建一個label和一個TextEdit控件
- 右鍵控件轉(zhuǎn)到槽,選擇textChanged()處理信號
- 編輯生成的槽函數(shù),QTextEdit 還提供了 toMarkdown 和 toHtml . 根據(jù)需要我們調(diào)整不同的獲取方式
void Widget::on_textEdit_textChanged()
{
//獲取多行輸入框的內(nèi)容
const QString& text = ui->textEdit->toPlainText();
//在日志中打印獲取到的內(nèi)容
qDebug()<<text;
//將label標(biāo)簽的內(nèi)容改為獲取到的內(nèi)容
ui->label->setText(text);
}
- 運行代碼,查看結(jié)果
文件代碼:
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_textEdit_textChanged()
{
//獲取多行輸入框的內(nèi)容
const QString& text = ui->textEdit->toPlainText();
//在日志中打印獲取到的內(nèi)容
qDebug()<<text;
//將label標(biāo)簽的內(nèi)容改為獲取到的內(nèi)容
ui->label->setText(text);
}
2. 驗證輸入框的各種信號
- 在界面中創(chuàng)建一個TextEdit控件
- 給輸入框添加以下幾個 slot 函數(shù),其中QTextCursor對象,獲得這個對象可以獲取當(dāng)前光標(biāo)位置和選中的內(nèi)容
void Widget::on_textEdit_textChanged()
{
qDebug()<<"[textEdit]"<<ui->textEdit->toPlainText();
}
void Widget::on_textEdit_selectionChanged()
{
const QTextCursor& cursor = ui->textEdit->textCursor();
qDebug() << "[selectionChanged] " << cursor.selectedText();
}
void Widget::on_textEdit_cursorPositionChanged()
{
const QTextCursor& cursor = ui->textEdit->textCursor();
qDebug() << "[cursorPositionChanged] " << cursor.position();
}
void Widget::on_textEdit_redoAvailable(bool b)
{
qDebug() << "[redoAvailable] " << b;
}
void Widget::on_textEdit_undoAvailable(bool b)
{
qDebug() << "[undoAvailable] " << b;
}
void Widget::on_textEdit_copyAvailable(bool b)
{
qDebug() << "[copyAvailable] " << b;
}
- 運行代碼,查看結(jié)果
- 在輸入框中輸入123
- 先Ctrl+Z(撤回)然后Ctrl+Y(返回上一步)
- 選中一個字符(Shift+方向鍵左)
文件代碼:文章來源:http://www.zghlxwxcb.cn/news/detail-861433.html
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_textEdit_textChanged()
{
qDebug()<<"[textEdit]"<<ui->textEdit->toPlainText();
}
void Widget::on_textEdit_selectionChanged()
{
const QTextCursor& cursor = ui->textEdit->textCursor();
qDebug() << "[selectionChanged] " << cursor.selectedText();
}
void Widget::on_textEdit_cursorPositionChanged()
{
const QTextCursor& cursor = ui->textEdit->textCursor();
qDebug() << "[cursorPositionChanged] " << cursor.position();
}
void Widget::on_textEdit_redoAvailable(bool b)
{
qDebug() << "[redoAvailable] " << b;
}
void Widget::on_textEdit_undoAvailable(bool b)
{
qDebug() << "[undoAvailable] " << b;
}
void Widget::on_textEdit_copyAvailable(bool b)
{
qDebug() << "[copyAvailable] " << b;
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-861433.html
到了這里,關(guān)于【Qt 學(xué)習(xí)筆記】Qt常用控件 | 輸入類控件 | Text Edit的使用及說明的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!