Russian Qt Forum
Апрель 30, 2024, 19:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Номер строки и столбца в QPlainTextEdit  (Прочитано 4058 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 870


Мы должны приносить пользу людям.


Просмотр профиля
« : Ноябрь 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);
Не очень понятно, что есть блок? И можно ли это сделать проще?
А как сделать наоборот - по номеру строки и колонки вычислить абсолютную позицию установить курсор в редакторе (может, до завтра кто подскажет;)?
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
carrygun
Гость
« Ответ #1 : Ноябрь 27, 2012, 05:16 »

Блок в данном случае - это абзац. Пока ты не перейдешь на новую строку, ты находишься в пределах одного блока.
Перейти в нужное место можно функцией setPosition у QTextCursor'а. А как посчитать - сам придумай. Например, количество блоков ты знаешь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 22.