I have a QML TextEdit
element, I plan for append some text and put the cursor at the end. My method:
import QtQuick 1.1
Rectangle {
color: "black"
anchors.fill: parent
focus: false
TextEdit {
id: txtCommands
color: "lightGreen"
anchors.fill: parent
textFormat: TextEdit.RichText
wrapMode: TextEdit.WordWrap
font.family: "Consolas"
font.pixelSize: 15
focus: true
MouseArea {
anchors.fill: parent
focus: false
}
Keys.onPressed: {
console.log(event.text)
switch (event.key) {
case 16777234: // LEFT
case 16777235: // UP
case 16777237: // DOWN
case 16777236: // RIGHT
event.accepted = true
break;
case 16777220: // Enter
txtCommands.text = txtCommands.text + ">: "
txtCommands.selectAll()
txtCommands.cursorPosition = txtCommands.text.length
break;
}
}
}
}
but it doesn't work. How can i do that?
textFormat
to TextEdit.PlainText
because you have lots of invisible html code otherwise.The following code works for me.
Keys.onReturnPressed: {
event.accepted = true
txtCommands.text = txtCommands.text + ">: "
txtCommands.cursorPosition = txtCommands.text.length
}
If your TextEdit is not in plain text mode textFormat: TextEdit.PlainText
, and is instead set to textFormat: TextEdit.RichText
, thentxtCommands.text.length
will include the length off all the non-visible html/rtf formatting markup stuff.
The simplest solution is to use txtCommands.length
. This property only gives the length of the visible characters.
temp
variable.temp= TextEdit.getText(0, TextEdit.length)
TextEdit.cursuorPosition += temp.length
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With