在Qt 5.5中,子对话框/小部件的触摸屏事件无法正常工作



我面临着一个非常奇怪的问题,我有一个正在运行的标准桌面应用程序,带有QMainwindow,某些辅助对话框和小部件会在QMainwindow的按钮按下事件中弹出。

最近,我不得不在触摸屏系统上运行这个应用程序。

现在我面临着一个非常奇怪的问题,我的触摸屏正在处理QMainwindow按钮、Radio、复选框等,但它不适用于某些对话框,也适用于某些其他对话框。

通常,Qt处理键盘和鼠标interface(Events)以与应用程序交互,我知道应用程序属性Qt::AA_SynthesizeMouseForUnhandledTouchEvents默认设置为true

这不正常工作吗?Qt不能将触摸事件合成为鼠标事件吗?

我的系统运行在最低安装的Ubuntu 16.04 64位和Qt 5.5开源SDK上。几天来,我一直在这个问题上绞尽脑汁,没有一个全面的解决方案。如有任何帮助或线索,我们将不胜感激。谢谢

p.S.:我相信其他已经面临这种问题了

我终于破解了这个谜团。事实上,问题是QMainwindow或应用程序的任何基本Widget都能够正确地将未处理的触摸屏事件合成为鼠标事件。因此,无论何时创建对话框/小部件,都要确保将Mainwindow设置为父窗口,并且在子小部件的构造函数中使用setParent(parent)。像我的魅力一样工作干杯!

最新更新