paip.提升用户体验------c++ 拖曳使用总结..

本文详细介绍了如何在C++ Qt中实现拖放功能,包括设置组件以接受拖放操作、处理拖放事件及获取拖放文件路径等关键步骤。通过具体代码示例展示了如何在Qt应用中集成这一实用特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

paip.提升用户体验------c++ qt 拖曳使用总结..


作者Attilax ,  EMAIL:1466519819@qq.com 
来源:attilax的专栏
地址:http://blog.youkuaiyun.com/attilax


1.头文件添加dragEnterEvent,dropEvent 俩个事件
------------------


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


2. 实现CPP
-------------
原理:
 setAcceptDrops(true); // [[1]]: 使label可接受拖放操作
  void dragEnterEvent(QDragEnterEvent *event);
    void dropEvent(QDropEvent *event);

-------------------cpp--------------------
 
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
   this->setAcceptDrops(true);
    //setAcceptDrops(true); // [[1]]: 使label可接受拖放操作
}


//ati c920
#include <QDragEnterEvent>
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
    if (event->mimeData()->hasFormat("text/uri-list"))
        event->acceptProposedAction();
}
void MainWindow::dropEvent(QDropEvent *event)
{
    QList<QUrl> urls = event->mimeData()->urls();
    if (urls.isEmpty())
       return;
    QString fileName = urls.first().toLocalFile();
//    if (fileName.isEmpty())
//        return;
   ui->lineEdit->setText(fileName);
  //  QMessageBox::about(NULL, "About", fileName);
   // traveDir(fileName);


}
//c920 end




参考:


QT拖拽功能简介 - pcsuite的专栏 - 博客频道 - youkuaiyun.com.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值