zoukankan      html  css  js  c++  java
  • Qt拖拽事件

    mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QDragEnterEvent>
    #include <QDropEvent>
    #include <QtDebug>
    #include <QMimeData>
    
    QT_BEGIN_NAMESPACE
    namespace Ui { class MainWindow; }
    QT_END_NAMESPACE
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
    
    protected:
        // 重写拖拽事件
        void dragEnterEvent(QDragEnterEvent *event);
        // 重写放下事件
        void dropEvent(QDropEvent *event);
    
    private:
        Ui::MainWindow *ui;
    };
    #endif // MAINWINDOW_H
    

    mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        // 接受drop事件
        this->setAcceptDrops(true);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::dragEnterEvent(QDragEnterEvent *event){
        // 根据mimeData选择是否允许放下的行为
        if(event->mimeData()->hasFormat("text/uri-list")){
            event->acceptProposedAction();
        }
    
    }
    
    void MainWindow::dropEvent(QDropEvent *event){
        // 获取文件地址
        QString url = event->mimeData()->urls().first().toLocalFile();
        qWarning()<<url<<endl;
    }
    

      

  • 相关阅读:
    结对编程作业——毕设导师智能匹配
    结对项目之需求分析与原型设计
    Excel绘制之甘特图
    Excel绘图之数据波动条形图
    Excel绘图之漏斗图
    Excel绘图之四象限散点图
    软件工程实践总结
    发送手机验证码
    个人作业——软件产品案例分析
    用例图
  • 原文地址:https://www.cnblogs.com/navysummer/p/14239897.html
Copyright © 2011-2022 走看看