1.我想实现父窗口通过点击按钮打开子窗口,子窗口采用的是Dialog类,我使用dialog->exec();来显示子窗口,发现软键盘输入有问题,点击编辑文本,可以弹出软键盘,但是出现卡顿现象,且点击软键盘不能输入内容。
解决办法:把调用方式改成dialog->show();就可以正常使用软键盘输入。
================================================================================
补充:后面又遇到问题,dialog窗口里调用虚拟键盘后,将该窗口关闭,再次打开该dialog或其他dialog类的窗口,键盘依然无法使用。
[上面的补充部分所用的键盘是自制键盘,使用Qt自带软键盘是没问题的]
2.如果父窗口和子窗口都使用Widget类(子窗口是在父窗口代码中创建的),子窗口和父窗口会共用一个“窗口”,且父窗口中没被子窗口挡住的部分依然可以操作(Widget类没有exec成员,暂时不知道有什么其他成员可以将父窗口的内容锁住)。
有一个奇怪的问题:如果子窗口采用栅格布局,子窗口没有组件的部分是透明的,也就是说可以看到两个窗口重叠部分里父窗口的内容。
所以如果想用栅格布局,子窗口最好不要使用Widget类。