0

我正在使用一个大型的多文件 Qt 界面,并且一直在将多个部分从 Qt3 更新到 Qt4。不幸的是,在某个地方,我删除了通过按下不同的鼠标按钮组合来移动(平移、旋转等)中央 QGLWidget 场景的能力。我对原始鼠标事件所做的更改类似于

老的:

 if(e->state() & Qt::ControlButton){ /*... do things  */ }

新的:

if(e->buttons() & Qt::ControlModifier){ /*... do things  */ }

我也尝试e->button()在新版本中简单使用,但无济于事;原本应该用鼠标发生的事情不再发生。从用户指南中,我看到旧函数在事件生成之前state()立即返回按钮状态,而在之后立即返回状态,然而,这是推荐的替换(我不太了解这些事情的时间,所以我不知道它会有多大的不同)。buttons()

无论如何,我注意到当我运行程序时我收到了消息QWidget::insert action: Attempt to insert null action。这是否可能与鼠标事件有关(这是我的第一直觉)?

如果是这样,我该怎么处理鼠标?如果没有,无论如何都必须修复它,所以我想知道:有没有办法追溯到导致问题的小部件/操作?

4

0 回答 0