QT窗口拖拽功能简单应用

QT上实现文件拖拽功能

声明dragEnterEvent和dropEvent事件函数,对窗口的拖拽行为进行处理

// 由MainWindow来截取拖拽事件

ui->lineEdit->setAcceptDrops(false);
this->setAcceptDrops(true);

void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);

ui->lineEdit->setAcceptDrops(false);
this->setAcceptDrops(true);

// 拖拽处理函数
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
#if 1
    // 判断拖拽文件类型,文件名 接收该动作
    if (event->mimeData()->hasFormat("text/uri-list")) {
        event->acceptProposedAction();
    }
#endif
}

// 拖拽释放处理函数
void MainWindow::dropEvent(QDropEvent *event)
{
#if 1
    QList<QUrl> urls = event->mimeData()->urls();
    if (urls.isEmpty()) {
        return;
    }

    QString fileName = urls.first().toLocalFile();
    if (fileName.isEmpty()) {
        return;
    }

    ui->lineEdit->setText(fileName);
#endif

}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值