Keyboard Symbian S60第5版中的虚拟键盘:使用哪种API?

Keyboard Symbian S60第5版中的虚拟键盘:使用哪种API?,keyboard,symbian,virtual,Keyboard,Symbian,Virtual,Symbian S60第5版上的虚拟键盘是如何打开的(即使用哪种API)?文档似乎缺少这方面的信息。您是对的,这显然是一个已发布的API,应该在文档中突出显示。没有这样的运气 如果您使用的是其中一个平台本机控件,则当用户访问文本编辑控件时,虚拟键盘将自动弹出 如果要创建自定义控件,则需要通过添加自己版本的虚拟键盘来处理其选择:使用正确的按钮使新的文本编辑、拥有窗口的虚拟键盘看起来像自定义控件。在所有应用程序中重复使用它。总有一天,诺基亚会意识到他们犯了一个明显的错误,并将API公开 如果您使用

Symbian S60第5版上的虚拟键盘是如何打开的(即使用哪种API)?文档似乎缺少这方面的信息。

您是对的,这显然是一个已发布的API,应该在文档中突出显示。没有这样的运气

  • 如果您使用的是其中一个平台本机控件,则当用户访问文本编辑控件时,虚拟键盘将自动弹出

  • 如果要创建自定义控件,则需要通过添加自己版本的虚拟键盘来处理其选择:使用正确的按钮使新的文本编辑、拥有窗口的虚拟键盘看起来像自定义控件。在所有应用程序中重复使用它。总有一天,诺基亚会意识到他们犯了一个明显的错误,并将API公开

  • 如果您使用的是直接屏幕访问,那么,您不会完全期望非常s60外观的虚拟键盘从Nowhere弹出。同样,在屏幕上画一个漂亮的图像,让用户知道虚拟键在哪里,并对指针事件做出反应。除非您在其中构建大量定制(背景、按钮边缘…),否则它的可重用性会降低


编辑:诺基亚可能依赖Qt解决此问题。我希望该控件是Qt当前4.7版本的一部分。

在自定义编码的动态滚动区域内,我将注意力集中在QLineEdit上,我遇到了一个类似的问题(如何手动打开虚拟键盘)。然后,我发现,这显然在Qt 4.6.3中对C7 Symbian^3手机有效:

// lineEdit is an instance of QLineEdit    
QApplication::postEvent(lineEdit, new QEvent(QEvent::RequestSoftwareInputPanel));
在此之前,我还必须将QEvent::FocusIn事件发布到同一个lineedit,否则QLineEdit不会从虚拟键盘更新内容


希望这是有帮助的。我浪费了几个小时。

谢谢你,这是非常有用的提示!还可以触发“关闭虚拟键盘”事件:

QApplication::postEvent(lineEdit, new QEvent(QEvent::CloseSoftwareInputPanel));