거기! QTextEdit에서 현재 행 형식을 변경하는 방법을 찾고 싶습니다. 제가선택하지 않고 QTextEdit에서 현재 줄 형식을 변경하는 방법?
는 "포맷은 현재 텍스트 상기 setCharFormat()를 사용하여 문서 mergeCharFormat() setBlockFormat() 및 mergeBlockFormat() 함수에 적용 할 수있는 판독 문서
. 만약 커서에 선택이 없습니다. 현재 블록 형식이 변경됩니다. "
그러나 내 응용 프로그램에서 현재 커서가있는 블록을 변경할 수 없습니다. 뭔가 놓칠까요? 그러면 선택이없는 현재 블록 형식을 어떻게 바꿀 수 있습니까?
QTextCursor cursor = this->textCursor();
QTextBlockFormat blockFmt;
blockFmt.setNonBreakableLines(true);
blockFmt.setPageBreakPolicy(QTextFormat::PageBreak_AlwaysBefore);
QTextCharFormat charFmt;
charFmt.setFont(data->visualFont());
if(!cursor.hasSelection()) {
cursor.beginEditBlock();
cursor.setBlockFormat(blockFmt);
cursor.mergeBlockCharFormat(charFmt);
QTextBlock block = cursor.block();
block.setUserData(data);
cursor.endEditBlock();
}
는 내가하고 싶은 : 어떤 선택이없는 경우, 현재의 행의 형식을 변경
여기 내 코드입니다. 따라서 cursor.hasSelection()이 false 인 경우, 새로운 형식을 병합하여 문자를 차단합니다. 그러나 이것은 효과가 없습니다.
또한 setTextCorsor (cursor)를 추가하려고했습니다. cursor.endEditBlock();을 수행 한 후에도 여전히 작동하지 않습니다. 실제로이 값을 추가하면 전체 블록이 보이지 않게됩니다.
그래서 선택이없는 현재 블록 형식을 어떻게 바꿀 수 있습니까?
감사에 관하여! 나는 그것이 잘 작동 할거라 생각한다! 귀하의 코드를 가져 주셔서 감사합니다! – devbean
또한 QSyntaxHighlighter 클래스 (http://doc.qt.nokia.com/latest/qsyntaxhighlighter.html)를보고 싶을 수도 있습니다. –