LINUX.ORG.RU

QTextEdit: сохранение текущей позиции


0

0

В программе, которую я сейчас пишу, нужно сделать сохранение текущей позиции в просматриваемом тексте, который содержится в read-only QTextEdit. В Qt3 я это делал так: при выходе из программы делал save_para=TextEdit.paragraphAt(XY) (QPoint XY - координаты левого верхнего угла текущей области вывода текста), а при запуске проги - TextEdit->setCursorPosition(position,0);

В связи с тем, что движок вывода текста и архитектура соответствующих классов Qt4 были значительно переделаны, функции-члена parapraphAt у виджета QTextEdit теперь нет. Что вы можете посоветовать использовать взамен?

З. Ы. Использование QTextCursor::position() не катит, потому как текст просматривается в режиме read-only, а курсор не перемещается при прокрутке текста (или перемещается? как это сделать?)

Re: QTextEdit: сохранение текущей позиции

Привет!

QTextEdit->verticalScrollbar()->value() -позиция
QTextEdit->verticalScrollbar()->setValue() -установка позиции

Severus_Zley ()

Re: QTextEdit: сохранение текущей позиции

ПС: об идееях напишу позже.
иЗВИНИ ВРЕМЕНИ НЕ ХВАТАЕТ:(

Severus_Zley ()
Ответ на: Re: QTextEdit: сохранение текущей позиции от V_L_A_D

Re: QTextEdit: сохранение текущей позиции

Потому как при изменении размеров QTextEdit меняется verticalScrollBar->maximum() и verticalScrollBar->value(). И если я сделаю таким образом закладку, разверну окно на весь экран, а затем перейду по этой закладке, то попаду совсем не туда, куда нужно;)

V_L_A_D ★★ ()
Ответ на: Re: QTextEdit: сохранение текущей позиции от V_L_A_D

Re: QTextEdit: сохранение текущей позиции

> Если бы ещё что-то в тему писал...

мозгов что ли не хватило понять что он имел ввиду?

надо разделить position на maximum и полученное значение в виде double сохранить, при старте maximum умножить на это double и присвоить position

anonymous ()
Ответ на: Re: QTextEdit: сохранение текущей позиции от anonymous

Re: QTextEdit: сохранение текущей позиции

А, так бы сразу и писал. Нет, хотелось бы что-нибудь поточнее (в предложенном способе пользователю обычно приходится пару раз нажимать PageUp/PageDown). Но, наверное, всё-таки придётся заюзать этот способ.

З.Ы. Сорри за наезды. При той погоде, какая сейчас стоит в Луганске, ближе к вечеру мозги начинают просто испаряться;)

V_L_A_D ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.