У меня проблема с моим QML. Я хочу отредактировать TextInput
на основе действия, установив для атрибута focus
значение true
. Это работает, когда TextInput
находится в Rectangle
, но не в ScrollView
. Вот пример:
Item {
id: main
width: 640
height: 480
ScrollView{
id: scrollView
height: parent.height/2
width: parent.width
Rectangle{
border.color: "black"
border.width: 1
anchors.centerIn: parent
height: 25
width: 200
TextInput{
id: ti1
anchors.fill: parent
verticalAlignment: TextInput.AlignVCenter
horizontalAlignment: TextInput.AlignHCenter
}
}
}
Rectangle{
y: height
height: parent.height/2
width: parent.width
Rectangle{
border.color: "black"
border.width: 1
anchors.centerIn: parent
height: 25
width: 200
TextInput{
id: ti2
anchors.fill: parent
verticalAlignment: TextInput.AlignVCenter
horizontalAlignment: TextInput.AlignHCenter
}
}
}
MouseArea{
anchors.fill: parent
onClicked: {
if (mouseY < parent.height/2){
ti2.focus = false
ti1.focus = true
}else{
ti1.focus = false
ti2.focus = true
}
}
}
}
Когда я нажимаю на нижнюю половину окна, TextInput
ti2 можно редактировать. Но когда я нажимаю на верхнюю половину, ti1 нет.
У кого-нибудь есть идеи? Поведение такое же с TextEdit
.
Спасибо.