Я создаю виджет, который принимает перетаскивание следующим образом:
MyWidget::MyWidget( QWidget *p_parent ) : QFrame( p_parent )
{
setAcceptDrops( true );
m_layout = new QLayout( this ); //this is layout of my custom widget
layout->setSpacing( 0 );
m_indicator = new QWidget( this );
m_indicator->setObjectName( "indicator" );
m_indicator->setFixedWidth( 5 );
layout->addWidget( m_indicator );
....
....
}
void MyWidget::dragMoveEvent( QDragMoveEvent *p_event )
{
p_event->acceptProposedAction();
}
Моя основная задача - вставить перетаскиваемый объект в макет, поэтому я должен определить, какой элемент находится под мышью, и выполнить мои действия. работа после этого. В функции dragMoveEvent
выше, я могу сделать p_event->pos()
, чтобы получить положение мыши. Но QLayout
не имеет метода itemAt(int x, int y)
. Что мне теперь делать?