我不明白为什么它不能正常工作。我想在窗口弹出时将TextEdit焦点设置为true。只有在对其区域执行了单击后,TextEdit才能接收关键事件。
main.qml
ApplicationWindow {
id:aplWin
visible: true
minimumWidth: 1280
minimumHeight: 1024
StackView {
id: stackView
anchors.fill: parent
initialItem: SignInWin {}
}
}
SignInWin.qml
Page {
id: root
width: parent.width + 500
height: parent.height
Rectangle {
border.color: "black"
y: 200
width: 50
height: 20
z: 1
TextEdit {
anchors.fill: parent
color: "black"
focus: true
}
}
}
答案 0 :(得分:1)
问题是那些:
焦点树中有多个图层。每个FocusScope
可以有一个具有焦点的孩子。所以现在你有了:
StackView -> Page -> TextEdit
令我感到困惑的是,Page
的行为就好像是FocusScope
,但没有记录。
这意味着,除非TextEdit
AND activeFocus
,否则Page
将不会StackView
。但是activeFocus
需要检索输入。
因此,您可以使用将遍历焦点层次结构的方法forceActiveFocus()
,并为每个FocusScope
请求焦点,或者将focus
- 属性设置为{{ 1}}用于层次结构中的每个层。
true