QT控件使用--QPlainTextEdit


  QPlainTextEdit是一個多行文本編輯器,用於顯示和編輯多行簡單文本。

一些常用的函數有:

appendPlainText(const QString)

向 PlainTextEdit 組件添加一行字符串

QString toPlainText()

將全部文字內容輸出為一個字符串

Int blockCount()

獲得文本塊個數(一個文本塊是一個段落,一個段落以回車符結束

QTextBlock fmdBlockByNumber(int blockNumber)

讀取某一個文本塊,序號從 0 開始,至 blockCount()-1 結束

 

 逐行讀取文本:

  QPlainTextEdit 的文字內容以 QTextDocument 類型存儲。

  QTextDocument 是內存中的文本對象,以文本塊的方式存儲,一個文本塊就是一個段落,每個段落以回車符結束。QTextDocument 提供一些函數實現對文本內容的存取:

  • int blockCount():獲得文本塊個數。
  • QTextBlock fmdBlockByNumber(int blockNumber):讀取某一個文本塊,序號從 0 開始,至 blockCount()-1 結束。

一個 document 有多個 TextBlock,從 document 中讀取出的一個文本塊類型為 QTextBlock,通過 QTextBlock::text() 函數可以獲取其純文本文字。

代碼:

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

  

實時顯示使用plainTextEdit的信號cursorPositionChanged().

有自帶快捷鍵菜單,使用信號customContextMenuRequested(),創建快捷菜單的槽函數代碼如下:

    QMenu* menu=ui->plainTextEdit->createStandardContextMenu();
    menu->exec(pos);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM