Russian Qt Forum

Qt => Qt Quick => Тема начата: RustAlex от Февраль 09, 2016, 16:18



Название: [РЕШЕНО]перемещение курсора Flickable для TextEdit
Отправлено: 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)
                               }
                           }
 


Название: Re: перемещение курсора Flickable для TextEdit
Отправлено: arhohryakov от Февраль 20, 2016, 07:20
Попробуйте использовать TextArea вместо Flickable+TextEdit.


Название: Re: перемещение курсора Flickable для TextEdit
Отправлено: RustAlex от Февраль 20, 2016, 13:45
Спасибо. Вроде как корректно работает. И кода меньше.