crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QTextEdit: После вставки списка, курсор уежжает вниз за пределы редактируемой области, Как автоматически сделать скроллинг к текущему положению курсора?
xintrea
  опции профиля:
сообщение 21.5.2008, 0:01
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 20.5.2008
Пользователь №: 179

Спасибо сказали: 1 раз(а)




Репутация:   0  


Здравствуйте!

Пытаюсь разобраться, как сделать простой текстовый редактор (текст с разметкой). Сделал область edittextarea класса QTextEdit. Сделал кнопочку создания нумерованного списка, она выполняет такие действия

// Форматирование в нумерованный список
void DialogImpl::on_editnumericlist_clicked(void)
{
// Создание форматирования
QTextListFormat format;
format.setStyle(QTextListFormat::ListDecimal);

// Если строки выбраны
if(edittextarea->textCursor().hasSelection())
   edittextarea->textCursor().createList(format); // Форматирование
else
   edittextarea->textCursor().insertList(format); // Вставляется первый пустой пункт
}


Проблема в том, что если курсор находится внизу редактируемой области, и если добавляется первый пустой пункт списка, то этот пункт добавляется ниже, чем пределы редактируемой области. То есть не видно ни только что созданный пункт, ни курсор. Но если промотать скроллинг чуть-чуть вниз, то видно и курсор, и новый добавленый пункт.

Вопрос - как сделать перемещение скроллинга к тому месту, где находится курсор?

Сообщение отредактировал xintrea - 21.5.2008, 0:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xintrea
  опции профиля:
сообщение 21.5.2008, 18:38
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 20.5.2008
Пользователь №: 179

Спасибо сказали: 1 раз(а)




Репутация:   0  


Отвечаю сам себе. Решение нашел, но сутки потерял. Хотел уже с Qt4.2 на Qt4.4 обновляться.

Чтобы переместиться к курсору, надо воспользоваться методом ensureCursorVisible(). Этот метод проверяет, виден ли курсор, и сдвигает прокрутку так, чтоб курсор был виден.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 11.3.2025, 2:47