Qt4虚拟键盘开发注意事项:
1、虚拟键盘的弹框内的所有widget要设置为Nofocus,QWindow虽然有个Toolwindow标志,但还是靠不住,最好用findChildren<QWidge *>遍历设置
2、表格编辑时,比如QTableWidget或其他自定义表格,一般时临时创建的QLineEdit,也就是说是堆内存,在编辑完成或取消编辑是,控件内存会释放,如果再往引用这个指针(比如这个指针发消息)会崩溃,典型bug:window下编辑表格时,点击到window桌面会崩溃。
3、焦点在模态窗口中编辑控间时,键盘点击不了,这时需要把这个模态窗口加一个设置:setWindowModality(Qt::WindowModal);,这个设置是指该窗口的模态只针对自己父控件。
4、由于第3点的原因,虚拟键盘的对话框或窗口也不能设置父控件,最好用m_keyboard = new Keyboard(); 不要传父控件进去。
5、键盘什么时候弹出?qApp有一个focusChanged的信号,把这个连接到键盘弹出的槽上,然后用newFocus->testAttribute(Qt::WA_InputMethodEnabled))判断该焦点控件是否为可输入控件,如果是就弹出键盘。
6、虚拟键盘和中文输入法其实是两回事。
Qt4虚拟键盘开发注意事项
最新推荐文章于 2024-04-12 17:28:26 发布