gpt4 book ai didi

c++ - 如何让一个 qwidget 知道另一个 qwidget 在它上面

转载 作者:行者123 更新时间:2023-11-28 03:47:05 28 4
gpt4 key购买 nike

我在屏幕上有很多固定的 qwidgets,还有很多其他的 widgets 我可以在屏幕上拖动。当一个小部件被拖动到固定小部件之上时,固定小部件需要执行一些代码。我无法弄清楚静止对象如何知道它上面有一个小部件并知道它是哪个小部件。

编辑:我正在拖动的对象是由我自己创建的函数拖动的,而不是 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。

最佳答案

您需要使用setAcceptDrops(true) 使静止对象接受拖放事件,然后实现这些事件以在其他小部件被拖放时执行一些代码:

void dragMoveEvent(QDragMoveEvent* event);
void dragEnterEvent(QDragEnterEvent* event);
void dropEvent(QDropEvent* event);

关于c++ - 如何让一个 qwidget 知道另一个 qwidget 在它上面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7302338/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com