日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt QPlainTextEdit用法详解

發布時間:2024/1/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 里:

void Widget::on_btnToComboBox_clicked() {//plainTextEdit的內容逐行添加為comboBox的項QTextDocument* doc=ui->plainTextEdit->document () ; //文本對象int cnt=doc->blockCount () ;//回車符是一個 blockQIcon icon(M:/images/icons/aim.ico");ui->comboBox->clear();for (int i=0; i<cnt;i++){QTextBlock textLine=doc->findBlockByNumber (i) ; // 文本中的一段QString str=textLine.text();ui->comboBox->addItem(icon,str);} }

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用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。