Flickable Wrapped TextEdit: Difference between revisions
Jump to navigation
Jump to search
m (Corrected minor mistake: function ensureVisible lacked parameter (r) which is invalid) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{LangSwitch}} | |||
[[Category:HowTo]] | [[Category:HowTo]] | ||
[[Category:Learning]] | [[Category:Learning]] | ||
[[Category:Developing_with_Qt::Qt Quick]] | [[Category:Developing_with_Qt::Qt Quick]] | ||
A method of having a Flickable TextEdit with wrapped text within another Item. | A method of having a Flickable TextEdit with wrapped text within another Item. | ||
<code> | <code> | ||
import QtQuick 1.0 | |||
FocusScope { | |||
width: 200 | |||
height: 200 | |||
Rectangle { | |||
property int margins: 20 | |||
x: margins | |||
y: margins | |||
width: parent.width - margins*2 | |||
height: parent.height - margins*2 | |||
border.color: "black" | |||
function ensureVisible { | border.width: 2 | ||
radius: 10 | |||
color: "pink" | |||
Flickable { | |||
id: flick | |||
width: parent.width - 10 | |||
height: parent.height; | |||
clip: true | |||
function ensureVisible(r) { | |||
if (contentY >= r.y) | |||
contentY = r.y; | |||
else if (contentY+height <= r.y+r.height) | |||
contentY = r.y+r.height-height; | |||
} | |||
TextEdit { | |||
id: message | |||
x: 5 | |||
width: parent.width | |||
height: parent.height | |||
wrapMode: "WrapAtWordBoundaryOrAnywhere" | |||
onCursorRectangleChanged: flick.ensureVisible(cursorRectangle) | |||
font.pixelSize: 16 | |||
} | |||
} | |||
} | } | ||
} | |||
</code> | </code> | ||
Latest revision as of 15:16, 22 February 2019
En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh
A method of having a Flickable TextEdit with wrapped text within another Item.
import QtQuick 1.0
FocusScope {
width: 200
height: 200
Rectangle {
property int margins: 20
x: margins
y: margins
width: parent.width - margins*2
height: parent.height - margins*2
border.color: "black"
border.width: 2
radius: 10
color: "pink"
Flickable {
id: flick
width: parent.width - 10
height: parent.height;
clip: true
function ensureVisible(r) {
if (contentY >= r.y)
contentY = r.y;
else if (contentY+height <= r.y+r.height)
contentY = r.y+r.height-height;
}
TextEdit {
id: message
x: 5
width: parent.width
height: parent.height
wrapMode: "WrapAtWordBoundaryOrAnywhere"
onCursorRectangleChanged: flick.ensureVisible(cursorRectangle)
font.pixelSize: 16
}
}
}
}