|
这是QT手册页中的例子A Directory Browser
下面是这个程序中的一部分,请问contentsDragLeaveEvent( QDragLeaveEvent * )如何把e转换成filename的,在contentsMousePressEvent( QMouseEvent* e )中可以吗?请教,多谢!
[PHP]void DirectoryView::contentsDropEvent( QDropEvent *e )
{
autoopen_timer->stop();
if ( !QUriDrag::canDecode(e) ) {
e->ignore();
return;
}
QListViewItem *item = itemAt( contentsToViewport(e->pos()) );
if ( item ) {
QStrList lst;
QUriDrag::decode( e, lst );
QString str;
switch ( e->action() ) {
case QDropEvent::Copy:
str = "Copy";
break;
case QDropEvent::Move:
str = "Move";
e->acceptAction();
break;
case QDropEvent: ink:
str = "Link";
e->acceptAction();
break;
default:
str = "Unknown";
}
str += "\n\n";
e->accept();
for ( uint i = 0; i < lst.count(); ++i ) {
QString filename = lst.at( i );
str += filename + "\n";
}
str += QString( "\nTo\n\n %1" )
.arg( fullPath(item) );
QMessageBox::information( this, "Drop target", str, "Not implemented" );
} else
e->ignore();
}
[/PHP] |
|