我在屏幕上有很多固定的qwidgets,我有很多其他的小部件可以在屏幕上拖动。当小部件被拖动到固定小部件之上时,固定小部件需要执行一些代码。我无法弄清楚静止物体如何知道它上面有一个小部件,并知道它是哪个小部件。
编辑: 我正在拖动的对象被我自己创建的函数拖动,而不是Qt Drag函数。这是我使用的
void Piece::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons() == Qt::LeftButton && turn == color)
{
x = event->globalX()-18;
y = event->globalY()-18;
move(x,y);
}
}
dropEvent是否仍然可以使用此方法?我尝试制作一个但是当我将小部件放在固定小部件的顶部时,从未输入dropEvent。
答案 0 :(得分:2)
您需要使用setAcceptDrops(true)
使静止对象接受drop事件,然后在拖放其他窗口小部件时实现这些事件以执行某些代码:
void dragMoveEvent(QDragMoveEvent* event);
void dragEnterEvent(QDragEnterEvent* event);
void dropEvent(QDropEvent* event);