Qt QPlainTextEdit用法详解
QPlainTextEdit?是一個多行文本編輯器,用于顯示和編輯多行簡單文本。另外,還有一個 QTextEdit 組件,是一個所見即所得的可以編輯帶格式文本的組件,以 HTML 格式標記符定義文本格式。
實例 samp4_6 演示 QPlainTextEdit(和QComboBox)的使用,其運行時界面如圖 1 所示。
圖 1 實例運行界面
從《QComboBox》一節中的代碼實現己經看出,使用 QPlainTextEdit::appendPlainText(const QString 函數就可以向 PlainTextEdit 組件添加一行字符串。
QPlainTextEdit 提供 cut()、copy()、paste()、undo()、redo()、clear()、selectAll() 等標準編輯功能的槽函數,QPlainTextEdit 還提供一個標準的右鍵快捷菜單。
逐行讀取文字內容
如果要將 QPlainTextEdit 組件里顯示的所有文字讀取出來,有一個簡單的函數 toPlainText() 可以將全部文字內容輸出為一個字符串,其定義如下:
QString QPlainTextEdit::toPlainText() const
但是如果要逐行讀取 QPlainTextEdit 組件里的字符串,則稍微麻煩一點。
下面是圖 1 窗口中“文本框內容添加到 ComboBox”按鈕的響應代碼,它將 plainTextEdit 里的每一行作為一個項添加到 comboBox 里:
QPlainTextEdit 的文字內容以 QTextDocument 類型存儲,函數 document() 返回這個文檔對象的指針。
QTextDocument 是內存中的文本對象,以文本塊的方式存儲,一個文本塊就是一個段落,每個段落以回車符結束。QTextDocument 提供一些函數實現對文本內容的存取:
- int blockCount():獲得文本塊個數。
- QTextBlock fmdBlockByNumber(int blockNumber):讀取某一個文本塊,序號從 0 開始,至 blockCount()-1?結束。
一個 document 有多個 TextBlock,從 document 中讀取出的一個文本塊類型為 QTextBlock,通過?QTextBlock::text()?函數可以獲取其純文本文字。
使用 QPlainTextEdit 自帶的快捷菜單
QPlainTextEdit 是一個多行文字編輯框,有自帶的右鍵快捷菜單,可實現常見的編輯功能。在 UI 設計器里,選擇為 plainTextEdit 的?customContextMenuRequested()?信號生成槽函數,編寫如下的代碼,就可以創建并顯示 QPlainTextEdit 的標準快捷菜單:
void Widget::on_plainTextEdit_customContextMenuRequested(const QPoint &pos) {//創建并顯示標準彈出式菜單QMenu* menu=ui->plainTextEdit->createStandardContextMenu();menu->exec(pos); }?
總結
以上是生活随笔為你收集整理的Qt QPlainTextEdit用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为鸿蒙17日,华为又有大动作,于10月
- 下一篇: 抖音短视频变现的渠道有哪些