[Не решено]QTextEdit + AutoScroll |
Здравствуйте, гость ( Вход | Регистрация )
[Не решено]QTextEdit + AutoScroll |
breeve |
1.2.2011, 14:35
Сообщение
#1
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Есть TextEdit, каждый раз когда вставляю в него текст - он автоматом поднимает скролл вверх. Поскольку вставляю оч. быстро, то я вообще не могу сдвинуть его с начальной позиции. Как убрать автоскролл?
Сообщение отредактировал breeve - 1.2.2011, 17:09 |
|
|
Rocky |
1.2.2011, 14:59
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Не пробовал, но попробуй с курсором поиграться. Передвигать его в самый конец... Что-то типа
|
|
|
abc |
1.2.2011, 15:04
Сообщение
#3
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
убрать скрол вообще? заставить скрол принимать какое-то нужное положение? убрать можно прям в дизайнере на вкладке текстэдита "qabstractscrollarea". Но скорее нужно управлять его положением, иначе зачем вообще текстэдит, в общем, объясни)
курсор в конец: ui->textEdit->moveCursor(QTextCursor::End); |
|
|
breeve |
1.2.2011, 15:14
Сообщение
#4
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
убрать скрол вообще? заставить скрол принимать какое-то нужное положение? убрать можно прям в дизайнере на вкладке текстэдита "qabstractscrollarea". Но скорее нужно управлять его положением, иначе зачем вообще текстэдит, в общем, объясни) Да нужно управлять его положением, нужно сделать так чтобы во время заполнения этого текстЕдита скролл был подвижен, у меня же он всегда вверху, чуть сдвину, он опять вверх. Я думаю что может есть где-то флаг который отвечает за передвижение скролла. Можно конечно считывать на сколько я передвинул, затем при возврате на начальную позицию уже программно передвигать на то место куда передвинуля в прош. раз с помощью мыши. Ну или хотя бы как сделать чтобы он авто скроллил, не вверх а вниз. т.е всегда смотрел на последнюю строку. Скролл в конец на тот случай если по другому не получиться. Если сформулировать попроще, как сделать так чтобы программно курсор не менял своего положения. |
|
|
abc |
1.2.2011, 15:22
Сообщение
#5
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
я так понимаю, что курсор в конец решает проблему, а вообще управлять скролом можно и так:
textedit->verticalScrollBar()->setValue(значение) а ещё у qwidget есть метод scroll(x,y) - не знаю, что он делает, но вдруг тоже хорошие дела) |
|
|
breeve |
1.2.2011, 15:54
Сообщение
#6
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
я так понимаю, что курсор в конец решает проблему, а вообще управлять скролом можно и так: textedit->verticalScrollBar()->setValue(значение) а ещё у qwidget есть метод scroll(x,y) - не знаю, что он делает, но вдруг тоже хорошие дела) Курсор в конец как раз таки не решает проблему. Нужно чтобы можно было двигать скролл, во время заполнения текстЕдита. Для наглядности продемонстрирую видео, и код. Устанавливаю текст в двух местах больше Едит не трогаю. code Если так так то получается убрать это никак? Сообщение отредактировал breeve - 1.2.2011, 15:56 |
|
|
abc |
1.2.2011, 16:28
Сообщение
#7
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
видео на работе хрен скачаешь, но вроде понял - ты хочешь, чтобы при вставке текста скрол на это не реагировал, а позволял пользователю собой управлять? надо же как я неверно понял первое сообщение подумаю
|
|
|
breeve |
1.2.2011, 16:31
Сообщение
#8
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
|
|
|
PAFOS |
1.2.2011, 17:34
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
Попробуй так:
Перед вставкой текста сохрани курсор, затем вставь текст и верни курсор) QTextCursor cursor = textEdit->textCursor(); textEdit->insertHtml("<p>...."); textEdit->setCursorTextCursor(cursor); |
|
|
breeve |
1.2.2011, 18:04
Сообщение
#10
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Попробуй так: Перед вставкой текста сохрани курсор, затем вставь текст и верни курсор) QTextCursor cursor = textEdit->textCursor(); textEdit->insertHtml("<p>...."); textEdit->setCursorTextCursor(cursor); Сделал получилось тоже самое что и textEdit->moveCursor(QTextCursor::End) т.е при обновлении текста курсор перемещает в конец. |
|
|
Текстовая версия | Сейчас: 29.11.2024, 13:04 |