• 3913阅读
  • 4回复

[提问]新手问怎样才能将文件拖拽到Qt程序中? [复制链接]

上一主题 下一主题
离线彩阳
 

只看楼主 倒序阅读 楼主  发表于: 2012-12-24
关键词: QT4拖拽
嗯,我试验了一下,是这么写的:
#include <QtGui>
#include "DragDialog.h"
/*---------------------------------------------------------------------------*/
DragDialog::DragDialog( void ): QDialog( 0 )
{
    // 初始化成员
    m_Label = new QLabel( tr( "Nothing dragged." ), this );

    setFixedSize( 160, 80 );
}
/*---------------------------------------------------------------------------*/
void DragDialog::dragEnterEvent( QDragEnterEvent *event )
{
    if ( event->mimeData( )->hasFormat( "text/uri-list" ) )
        event->acceptProposedAction( );
}
/*---------------------------------------------------------------------------*/
void DragDialog::dropEvent( QDropEvent* event )
{
    //QList<QUrl> urls = event->mimeData( )->urls( );
    //m_Label->setText( urls.first( ).toLocalFile( ) );
    //if ( urls.isEmpty( ) ) return;
    //m_Label->setText( urls.first( ).toLocalFile( ) );
    //if ( event->mimeData( )->hasText( ) )
    //{
        m_Label->setText( event->mimeData( )->text( ) );
    //}
}

但是想拖一个makefile进去,可标签总是显示“Nothing dragged.”。这是怎么回事呢?


上海Qt开发联盟,热忱地欢迎你的加入!
离线kimtaikee

只看该作者 1楼 发表于: 2012-12-24
void    setAcceptDrops ( bool on ) ?

离线彩阳

只看该作者 2楼 发表于: 2012-12-24
回 1楼(kimtaikee) 的帖子
能详细地说明一下是怎么操作吗?
上海Qt开发联盟,热忱地欢迎你的加入!
离线彩阳

只看该作者 3楼 发表于: 2012-12-24
回 1楼(kimtaikee) 的帖子
我知道了,原来是构造函数中需要添加setAcceptDrops( true )啊。
上海Qt开发联盟,热忱地欢迎你的加入!
离线yanghp
只看该作者 4楼 发表于: 2012-12-29
快速回复
限100 字节
 
上一个 下一个