Название: сохранение позиции slider'a в QTextEdit Отправлено: maybell от Июль 21, 2008, 21:06 Имеется html-отчет о заданиях пользователя. Выглядит как табличка с описанием и статусами (Выполнил, Ознакомлен и тп).
Отчет постоянно обновляется (появляются новые задания, выполненные проверяются) и при каждом обновлении страница с отчетом прыгает наверх, т.е. пользователь теряет задание на котором находится. В общем необходимо зафиксировать каким-то образом позицию в отчете.. Была попытка через anchor сохранить текущую позицию, но опять же пользователь может не кликать на задании, а просто проскроллить текст.. Вопрос: Каким образом возможно сохранить текущую позицию бегунка скроллера? У класса QTextEdit нет наследуемых классов от QSlider, есть только QScrollArea. Были попытки типа: QSlider slider=new QSlider(text);//пробовался и frame slider_position=slider->SliderPosition; slider->setSliderPosition(slider_position); slider->setValue(slider_position); К сожалению, кода под рукой нет, но хотелось бы услышать какие-нибудь предложения, доводы и замечания.. Qt 4.1.2 Название: Re: сохранение позиции slider'a в QTextEdit Отправлено: spirit от Июль 21, 2008, 21:13 Код: QScrollBar * QTextEdit::verticalScrollBar () const а QScrollBar наследуется от QAbstractSlider. ну а дальше ассистант. Название: Re: сохранение позиции slider'a в QTextEdit Отправлено: pastor от Июль 21, 2008, 21:16 Вопрос: Каким образом возможно сохранить текущую позицию бегунка скроллера? Узнать позицию можно например так: Код: int hor_pos = textedit->horizontalScrollBar()->value(); Название: Re: сохранение позиции slider'a в QTextEdit Отправлено: axinedy от Июль 13, 2010, 13:06 Цитировать и при каждом обновлении страница с отчетом прыгает наверх, т.е. пользователь теряет задание на котором находится. В общем необходимо зафиксировать каким-то образом позицию в отчете.. Столкнулся с аналогичной проблемой...использование такого подхода: Код: //перед обновлением: Код: textedit->setWordWrapMode(QTextOption::NoWrap); Попытка сохранять и восстанавливать позицию следующим образом: Код: //перед обновлением текста Если заменить textedit->update() на textedit->repaint() видно, что обновление происходит - горизонтальная прокрутка появляется и тут же исчезает, но позиция "скачет"... Что можно сделать? |