我面临一个非常奇怪的问题,我有一个运行QMainwindow的标准桌面应用程序,以及来自QMainwindow的buttonpress事件中弹出的某些辅助对话框和小部件。
最近,我不得不在触摸屏系统上运行此应用程序。
现在我面临一个非常奇怪的问题,我的触摸屏正在处理QMainwindow按钮,收音机,复选框等,但它不适用于某些对话框,它适用于某些其他对话框。
通常Qt处理与应用程序交互的键盘和鼠标interface(Events)
,我知道应用程序属性Qt::AA_SynthesizeMouseForUnhandledTouchEvents
默认设置为true
。
这不能正常工作吗? Qt无法将触摸事件合成为鼠标事件吗?
我的系统运行在最小安装Ubuntu 16.04 64位和Qt 5.5 opensource SDK上。我一直在解决这个问题几天没有全面的解决方案。任何帮助或任何领导都很赞赏。谢谢!
答案 0 :(得分:0)
最后,我能够破解这个谜团。实际上,事情是QMainwindow或您的应用程序的任何基本Widget能够正确地将未处理的触摸屏事件合成到鼠标事件。因此,无论何时创建对话框/窗口小部件,请确保将Mainwindow设置为父窗口,并在子窗口小部件的构造函数中使用setParent(parent)。像我的欢呼一样欢呼!