我建立了一个QT3的mdi窗口,各个窗口显示不同图形,想将目标窗口的图形,合并到一个窗口显示.想使用drag和drop方式实现,那位i给我说说咋实现呀.
构造函数如下:
MDIWindow::MDIWindow( QWidget* parent, const char* name, int wflags )
: QWidget( parent, name, wflags )
{
setAcceptDrops(true);
}
//下面没做数据类型过滤,只是考察进入DragEnterEvent否,试验结果是没有激发DragEnterEvent 事件
void MDIWindow::dragEnterEvent (QDragEnterEvent *event)
{
//if (event->mimeData()->hasText()) //这里视自己的情况可以是hasColor、hasFormat、hasHtml等
// {
if (event->source() == this)
{
event->acceptAction ( ) ;
event->accept();
// TODO:处理内部拖曳
}
else
{
event->accept();
//TODO:处理外部的drag,即接受drop
}
//}
//else
//{
// event->ignore();
//}
}
void MDIWindow::dragLeaveEvent(QDragLeaveEvent *event)
{
cout <<"drag leave" <<endl;
}
void MDIWindow::dragMoveEvent(QDragMoveEvent *event)
{
cout <<"drag move" <<endl;
}
void MDIWindow::dropEvent (QDropEvent *event)
{
cout <<"drop" <<endl;
}
void MDIWindow::mousePressEvent (QMouseEvent *event)
{
cout <<"mouse press" <<endl;
}
上面代码mousePressEvent可 激发,但其他事件没有激发,其大侠帮助看看