몇 가지 예제를 스캔 한 후이 문제를 해결할 수 없었습니다. 텍스트가 포함 된 QPlainTextEdit
이있는 간단한 MainWindow를 갖는 테스트를 만들었습니다. 방아쇠를 당길 때 텍스트의 일부를 빨간색으로 표시하고 밑줄을 그어으로 지정합니다. 그러나 그것은 결코 일어나지 않습니다.QPlainTextEdit : 텍스트 일부분에 대한 다른 char 형식
내 코드
감사합니다 :은 QTextEdit 대신
몇 가지 예제를 스캔 한 후이 문제를 해결할 수 없었습니다. 텍스트가 포함 된 QPlainTextEdit
이있는 간단한 MainWindow를 갖는 테스트를 만들었습니다. 방아쇠를 당길 때 텍스트의 일부를 빨간색으로 표시하고 밑줄을 그어으로 지정합니다. 그러나 그것은 결코 일어나지 않습니다.QPlainTextEdit : 텍스트 일부분에 대한 다른 char 형식
내 코드
감사합니다 :은 QTextEdit 대신
) 아무것도 변경되지 않습니다 사용
void MainWindow::on_actionTest_triggered()
{
QTextCursor cur = ui.plainTextEdit->textCursor();
cur.setPosition(49);
QTextCharFormat oldFormat = cur.charFormat();
QTextCharFormat newFormat = oldFormat;
newFormat.setForeground(Qt::darkRed);
newFormat.setUnderlineColor(Qt::darkRed);
newFormat.setUnderlineStyle(QTextCharFormat::WaveUnderline);
newFormat.setFontUnderline(true);
cur.setCharFormat(newFormat);
cur.setPosition(cur.position()+11);
cur.setCharFormat(oldFormat);
ui.plainTextEdit->setTextCursor(cur);
}
이것은 당신의 솔루션입니다 : Underline
및 background
을 설정 QTextCharFormat를 사용
.
void MainWindow::on_pushButton_clicked()
{
int begin = 30; //begin highlight
int end = 40; //end highlight
QTextCharFormat fmt;
fmt.setBackground(Qt::red); // set color red
fmt.setUnderlineStyle(QTextCharFormat::SingleUnderline); //set underline
QTextCursor cursor(ui->plainTextEdit->document());
cursor.setPosition(begin, QTextCursor::MoveAnchor);
cursor.setPosition(end, QTextCursor::KeepAnchor);
cursor.setCharFormat(fmt);
}
정말 고마워! 선택을 표시하는 데 커서가 필요합니다. – Jazzco
나는 생각하지 않는다는'QPlainTextEdit'는 서식있는 텍스트를 표시 할 수 있습니다. 대신'QTextEdit'을 사용해야합니다. –
대신 QTextEdit을 사용하면 아무 것도 변경되지 않습니다. – Jazzco
@Hi 저는 Frogatto입니다. QPlainTextEdit을 사용하면 가능합니다. 내 대답을 참조하십시오. – aghilpro