我有几个QWidgets,比如说previewWidget,它们每个都包含2个QLabel(可能更多,而不是QLabel) . 我想在主窗口中拖放previewWidgets .
Problem: 我可以通过在绿色区域(即PreviewWidget区域)上按鼠标来移动小部件 . 但是,如果我尝试通过单击其中一个标签来拖动窗口小部件,那么该标签将移出previewWidget(有时我甚至不了解会发生什么) . 我想要的是移动整个previewWidget,或者当它的子节点上按下鼠标时至少没有任何事情发生 .
My approach. 我重载了mousePressEvent(),如下所示:
void MainWindow::mousePressEvent(QMouseEvent *event)
{
// I beleive my problem is right here...
PreviewWidget *child = static_cast<PreviewWidget*>(this->childAt(event->pos()));
if (!child)
return; // this is not returned even if the child is not of a PreviewWidget type
// Create QDrag object ...
}
如何以我想要的方式拖放PreviewWidget?任何例子都表示赞赏 .
1 回答
我建议在光标坐标处识别孩子的策略 .
在你的
mousePressEvent
: