无法从文本字段弹出Android虚拟键盘
我在Ubuntu 14.40 LTS 64位上使用无法从文本字段弹出Android虚拟键盘,android,qt,qml,Android,Qt,Qml,我在Ubuntu 14.40 LTS 64位上使用Qt5.5.1开源,正在为Samsung Galaxy Tab 3 10.1运行Android 4.2.2。我有以下测试TextField: TextField { width: 384 height: 128 placeholderText: qsTr("Android Virtual Keyboard does not pop up") focus: true onTextChanged:
Qt5.5.1开源
,正在为Samsung Galaxy Tab 3 10.1
运行Android 4.2.2
。我有以下测试TextField
:
TextField
{
width: 384
height: 128
placeholderText: qsTr("Android Virtual Keyboard does not pop up")
focus: true
onTextChanged:
{
print("Text changed");
} // onTextChanged
MouseArea
{
anchors.fill: parent
onClicked:
{
print("clicked");
forceActiveFocus(Qt.MouseFocusReason);
Qt.inputMethod.show();
} // onClicked
} // MouseArea
} // TextField
现在,一旦获得该组件的焦点-用户在触摸屏上选择它,调试控制台上会显示消息“clicked”(单击),这是正常的,但不会显示Android键盘
,因此用户无法在其中输入任何文本
为什么?
及
是否有人有更好的经验使用
文本编辑
或甚至文本区域
,我个人更喜欢文本字段
,因为文本字段
的占位符文本
属性?我使用几个TextField
组件来进入数据库连接设置。您应该强制对TextField进行活动聚焦,即.forceActiveFocus()
,这里您强制对MouseArea
本身进行聚焦。但实际上,为什么要在这里使用MouseArea
?它完全没有用,因为TextField
已经触发了键盘。@BaCaRoZzo好的,很好的指南,但是,在我省略MouseArea
之后,我应该把forceActiveFocus()
放在哪里?为什么要使用forceActiveFocus
?这就是问题所在。:)你有一套分层的MouseArea
s吗?只需将它们放在TextField
s下方,以便后者获得活动焦点。请参见,您应该强制将活动焦点放在TextField上,即.forceActiveFocus()
,这里您强制将焦点放在MouseArea
本身上。但实际上,为什么要在这里使用MouseArea
?它完全没有用,因为TextField
已经触发了键盘。@BaCaRoZzo好的,很好的指南,但是,在我省略MouseArea
之后,我应该把forceActiveFocus()
放在哪里?为什么要使用forceActiveFocus
?这就是问题所在。:)你有一套分层的MouseArea
s吗?只需将它们放在TextField
s的z-下方,以便后者获得活动焦点。请参阅