Как выделить строку в QTextEdit по клику мыши?

Т.е. нужно кликнуть мышью в список в QTextEdit, получить номер строки, куда был клик, и выделить эту строку. А ещё желательно выделять строку нужного номера программно, без клика мышью.


Ответы (1 шт):

Автор решения: Sergey Tatarincev

Для отлавливания клика, ва понадобится установить соответствующий eventFilter, в котором просто выделить строку под курсором:

QTextCursor c = ui->textEdit->textCursor();
c.select(QTextCursor::LineUnderCursor);
ui->textEdit->setTextCursor(c);

что касается выбора определенной строки:

void MainWindow::selectLine(int line)
{
    QTextCursor c = ui->textEdit->textCursor(); //получили текстовый курсор
    c.movePosition(QTextCursor::Start); // переместили в начало документа
    c.movePosition(QTextCursor::Down,QTextCursor::MoveAnchor,line);// сместили  на line позиций вниз
    c.select(QTextCursor::LineUnderCursor); // выделили строку под курсором
    ui->textEdit->setTextCursor(c); // установили курсор назад
}
→ Ссылка