qt 設定QTextEdit文字框中指定內容塊的背景顏色

雾枫發表於2024-04-24

效果:

程式碼:

void MainWindow::setCheckResultColor(QTextEdit *textEdit, int position, int length, const QColor &color)
{
    // 獲取文字編輯器的文字選區
    QTextCursor cursor =  textEdit->textCursor();
    // 將選區移動到指定位置
    cursor.setPosition(position);
    // 將選區擴充套件到指定長度
    cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, length);

    // 建立文字格式物件,並設定背景顏色
    QTextCharFormat format;
    format.setBackground(color);

    // 應用格式到選區的文字
    cursor.mergeCharFormat(format);
}

使用:

// 對校驗後不同的位元組設定背景顏色
    for(int i=0;i<m_checkIndex.size();i++)
    {
        setCheckResultColor(ui->originalBinFile_Edit,m_checkIndex[i],2,Qt::red);
        setCheckResultColor(ui->exportBinFile_Edit,m_checkIndex[i],2,Qt::red);
    }

相關文章