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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО]перемещение курсора Flickable для TextEdit  (Прочитано 2765 раз)
RustAlex
Гость
« : Февраль 09, 2016, 16:18 »

При интеграции классического примера Flickable для TextEdit есть особенность  - курсор нельзя поместить в конец текста с использованием мыши - если текст выходит за рамки ПЕРВОНАЧАЛЬНОГО окна отображения (в первоначальном перемещается). При этом в конец текста можно переместить курсор стрелочками. Это особенно неудобно на мобильной платформе.
Код
C++ (Qt)
                           Flickable {
                               id: flick
                               width: parent.width; height: parent.height;
                               contentWidth: txtEdComment.paintedWidth
                               contentHeight: txtEdComment.paintedHeight
                               clip: true
                               boundsBehavior: Flickable.DragOverBounds
                               flickableDirection: Flickable.AutoFlickDirection
                               function ensureVisible(r) {
                                   if (contentX >= r.x)
                                       contentX = r.x;
                                   else if (contentX+width <= r.x+r.width)
                                       contentX = r.x+r.width-width;
                                   if (contentY >= r.y)
                                       contentY = r.y;
                                   else if (contentY+height <= r.y+r.height)
                                       contentY = r.y+r.height-height;
                               }
                               TextEdit {
                                   id: txtEdComment
                                   text: qsTr("_Text Edit")
                                   anchors.rightMargin: 5
                                   anchors.leftMargin: 2
                                   anchors.bottomMargin: 2
                                   anchors.topMargin: 2
                                   width: flick.width
                                   height: flick.height
                                   focus: true
                                   wrapMode: TextEdit.Wrap
                                   transformOrigin: Item.Bottom
                                   onCursorRectangleChanged: flick.ensureVisible(cursorRectangle)
                               }
                           }
 
« Последнее редактирование: Апрель 19, 2016, 11:00 от RustAlex » Записан
arhohryakov
Гость
« Ответ #1 : Февраль 20, 2016, 07:20 »

Попробуйте использовать TextArea вместо Flickable+TextEdit.
Записан
RustAlex
Гость
« Ответ #2 : Февраль 20, 2016, 13:45 »

Спасибо. Вроде как корректно работает. И кода меньше.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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