如何通过单击Qwebview内部的元素来拖动整个无框Qwidget



i当前有一个包含qwebview的qwidget。容器Qwidget是半透明且无框的。我能够通过单击Qwidget的外部单击和拖动来拖动无框窗口,但是当我单击Qwebview中的任何内容时,我都无法拖动。

我的目标是能够在QWEBView的DOM中创建一个类别或" Drag handle" ID的元素。然后,从应用程序中,我想找到任何称为" Drag handle"的元素,并将其绑定到拖动事件,以便我可以使用它来拖动整个Qwidget容器。

我希望这是有道理的,可以随意将我指向某些文档或示例材料的方向,如果您认为这会为我做,我会很乐意尝试在我的身上弄清楚它如果有人可以将我指向正确的方向。

出于我的意见,您不应使用拖动事件,而应该使用鼠标事件。您应该扩展qwebvew类,覆盖鼠标处理程序事件,

  • 当要处理"拖动"对象上的鼠标按事件时,您可以设置qt :: lecterHandCursor光标。
  • 在处理鼠标移动事件后,您应计算鼠标运动偏移量并分别在计算偏移量上移动主窗口。这样的东西:

qpoint offset = prestpos - event-> pos();mainwindow->移动(mainwindow-> pos() offset);

  • 将处理鼠标释放事件时,您可以重置鼠标光标。

用于实现此功能,您可以使用QSTATEMACHINE。

最新更新