Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: sergek от Ноябрь 26, 2012, 20:12



Название: Номер строки и столбца в QPlainTextEdit
Отправлено: sergek от Ноябрь 26, 2012, 20:12
Коллеги, нужно для редактора QPlainTextEdit (QTextEdit) отобразить номера строки и колонки текущего положения курсора.
Получилось так:
Код:
    int position=textEditScript->textCursor().position();
    QTextDocument* doc=textEditScript->document();
    QTextBlock block=doc->findBlock(position);
    int col=position-block.position()+1;
    int row=block.blockNumber()+1;
    QString cursor=QString("%1 : %2").arg(row).arg(col);
    cursorLbl->setText(cursor);
Не очень понятно, что есть блок? И можно ли это сделать проще?
А как сделать наоборот - по номеру строки и колонки вычислить абсолютную позицию установить курсор в редакторе (может, до завтра кто подскажет;)?


Название: Re: Номер строки и столбца в QPlainTextEdit
Отправлено: carrygun от Ноябрь 27, 2012, 05:16
Блок в данном случае - это абзац. Пока ты не перейдешь на новую строку, ты находишься в пределах одного блока.
Перейти в нужное место можно функцией setPosition у QTextCursor'а. А как посчитать - сам придумай. Например, количество блоков ты знаешь.