在国产飞腾D2000银河麒麟操作系统平台上,使用QT开发的窗口发现在点击窗口空白背景时窗口会被拖拽移动,重写鼠标事件与否都无法解决这个问题,随后捕捉了QEvent的事件,发现在窗口创建时有一个QEvent::Polish的事件被处理,捕捉该事件后不予处理,可以解决这个问题。
参考代码:
//重写主窗口的event处理方法
bool Widget::event(QEvent *event)
{
//飞腾D2000 linux 操作系统 Arm架构
#if defined(Q_OS_LINUX) && defined(__aarch64__)
//截获Polish事件,防止拖拽窗口背景时窗口出现移动
if(event && event->type() == QEvent::Polish){
event->accept();
return true;
}
#endif
return QWidget::event(event);
}