void Editor::setErrorPosition( unsigned int line, unsigned int pos ){ QTextCursor cursor = textCursor(); cursor.movePosition( QTextCursor::Start ); cursor.movePosition( QTextCursor::Down, QTextCursor::MoveAnchor, line - 1 ); cursor.movePosition( QTextCursor::StartOfLine ); cursor.movePosition( QTextCursor::Right, QTextCursor::MoveAnchor, pos ); cursor.movePosition( QTextCursor::WordRight, QTextCursor::KeepAnchor ); // гарантированно нужное слово selected, это проверено QTextCharFormat defcharfmt = currentCharFormat(); QTextCharFormat newcharfmt = defcharfmt; newcharfmt.setUnderlineColor( QColor( Qt::red ) ); newcharfmt.setUnderlineStyle( QTextCharFormat::WaveUnderline ); setCurrentCharFormat( newcharfmt ); cursor.movePosition( QTextCursor::WordLeft ); // снять выделение setCurrentCharFormat( defcharfmt ); // и вернуть умолчательный формат}
cursor.movePosition( QTextCursor::Start );cursor.movePosition( QTextCursor::Down, QTextCursor::MoveAnchor, line - 1 );cursor.movePosition( QTextCursor::StartOfLine );cursor.movePosition( QTextCursor::Right, QTextCursor::MoveAnchor, pos );cursor.movePosition( QTextCursor::WordRight, QTextCursor::KeepAnchor );setTextCursor( cursor ); // addedQTextCharFormat defcharfmt = currentCharFormat();QTextCharFormat newcharfmt = defcharfmt;newcharfmt.setFontUnderline( true ); // addednewcharfmt.setUnderlineColor( QColor( Qt::red ) );newcharfmt.setUnderlineStyle( QTextCharFormat::WaveUnderline );newcharfmt.setFontItalic( true );setCurrentCharFormat( newcharfmt );cursor.movePosition( QTextCursor::WordLeft );setTextCursor( cursor ); // addedsetCurrentCharFormat( defcharfmt );setFocus();