我面临着一个非常奇怪的问题,我有一个正在运行的标准桌面应用程序,带有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)。像我的魅力一样工作干杯!