【发布时间】:2020-08-03 03:03:05
【问题描述】:
我构建了一个接受拖放的小部件,如下所示:
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)。我现在该怎么办?
【问题讨论】:
-
@hyde:谢谢,我只是太专注于布局,忘记了父窗口小部件:)
标签: qt drag-and-drop