0

我有一个标准的 QLineEdit,它嵌入在一个单独的包装类中的 QGraphicsProxyWidget 中,以使其在 QML 中可访问。在我的包装类中,我重新连接了信号“editingFinished”,信号进入 QML 环境。在我的 QML 环境中,有一个插槽可以处理此信号并首先打印一些文本。

当我编辑 LineEdit 的文本并按 Enter 键时,会发出信号,并且插槽会收到此信号并打印出此消息。这表明信号和插槽连接正确。但是当我编辑文本并单击 QML.Environment 中的另一个元素时,不会发出任何信号。

我能做些什么来发出这个信号。QML 中的焦点处理是否存在错误?谢谢你的帮助

4

1 回答 1

0

好吧,它看起来像是 QML 的一个问题,正如它所说的那样

编辑完成后,无论是因为行编辑失去焦点还是按下 Return/Enter,都会发出 editingFinished() 信号。

但我没有太多经验。但它也说

请注意,如果在行编辑上设置了验证器,则仅当验证器返回 QValidator::Acceptable 时才会发出 returnPressed()/editingFinished() 信号。

于 2012-03-28T04:41:58.347 回答