解决qt输入法 qinputcontent 在qdialog下没响应的问题

来源:互联网 发布:什么软件看漫画免费 编辑:程序博客网 时间:2024/05/16 06:44

使用qinputcontent的方式实现的qt输入法,在qdialog下不能正常操作,好像输入法死掉一样,根据下面这边帖子解决问题,感谢分享。

http://www.qtcn.org/bbs/read-htm-tid-45344.html


主要是下面的方法:


经过测试,点击输入面板,没有发应的问题,是由QDialog.exec()引起的~~

故切入点还是它。


看QT帮助手册:
int QDialog::exec() [slot]
Shows the dialog as a modal dialog, blocking until the user closes it .The function returns a DialogCode result.
if the dialog is application modal,users cannot interact with any other window in the same applicatio until they close the dialog. if the dialog iswindow modal,only interaction with the parent window is blocked while the dialog is open.By default, the dialog is application modal.
See also open() ,show(),result(),and setWindowModality().


从上面,可以看出QDialog默认为application modal,而要使用输入法,必有“interaction with the parent window is blocked while the dialog is open”,故使用setWindowModality(Qt::WindowModal),就可以使用输入法了。
故原来的代码改为:
........
     SecondDialog seconddialog;
     seconddialog.setWindowModality(Qt::WindowModal);
     seccondialog.exec();
0 0
原创粉丝点击