【问题标题】:How do you respond to tapping on a textfield only when you click up on Blackberry Cascades simulator in QML?仅当您在 QML 中单击 Blackberry Cascades 模拟器时,您如何响应点击文本字段?
【发布时间】:2012-10-15 16:30:40
【问题描述】:

我试图弄清楚如何响应在 Blackberry Cascades 中对文本字段的点击。现在,我有这样的代码:

TextField {
    onFocusedChanged: {
        if (focused) {
            doStuff();
        }
    }
}

但这会在您单击项目时做出响应,但不会等到您在模拟器中松开鼠标(或在真正的黑莓中等效)

【问题讨论】:

  • 如果您希望代码仅在点击事件(即按下并释放)时执行,您可以使用 TextField{ MouseArea { anchors.fill: parent onClicked: doStuff() } }
  • 谢谢,但我无法使用 MouseArea。导致此错误:无法分配给不存在的默认属性 MouseArea { ^) QmlDocument:createRootNode document is not loaded or has errors, can't create root

标签: c++ qt textfield qml blackberry-10


【解决方案1】:

试试这个代码,这在模拟器中对我有用。我没有黑莓设备来检查这个。

TextField {
    id: field
    width: parent.width

    MouseArea {
        anchors.fill: parent
        onClicked:{ console.debug("Got click event received! \nSetting focus for TextField");  field.focus = true; }
    }
}

【讨论】:

  • 谢谢,非常感谢,但我使用的 QML 版本中似乎没有实现 MouseArea。我正在使用 Blackberry 10 Cascades,顺便说一下 QNX Momentics IDE。
  • 我希望 MouseArea 是一个标准的 QML 元素。像 int 一样,在 c 中浮动。因此,即使 IDE 没有自动完成它也会显示一些错误,请尝试此操作。
  • 谢谢,我收到此错误:无法分配给不存在的默认属性 MouseArea { ^) QmlDocument:createRootNode 文档未加载或有错误,无法创建根
  • 我的意思是,当使用 MouseArea 时,黑莓应用程序甚至无法启动,并显示该错误消息。
  • 我不知道 Qt 的黑莓端口。如果我知道了,我一定会让你知道的。
【解决方案2】:

试试这个

onTouch: {
  if (event.isUp()) {
    //do stuff here
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多