当前位置: 首页 > news >正文

QT QLineEdit 如何支持文件拖放

在客户端软件中,如果遇到选择文件时,人们往往可以通过点击按钮的方式来打开文件对话框,从而选择需要的文件,并将其显示在编辑框中。但是也有一些用户喜欢拖拽文件的方式来实现这一目的。那么 QLineEdit 是如何支持文件拖放?详见代码:

#ifndef DRAGDROPLINEEDIT_H
#define DRAGDROPLINEEDIT_H
#include <QLineEdit>
#include <QDragEnterEvent>
#include <QMimeData>
#include <QDropEvent>
#include <QDebug>

class DragDropLineEdit : public QLineEdit {
    Q_OBJECT
public:
    DragDropLineEdit(QWidget *parent = nullptr) : QLineEdit(parent) {
        setAcceptDrops(true);  // 允许接受拖放事件
    }

protected:
    void dragEnterEvent(QDragEnterEvent *event) override
    {
        if (event->mimeData()->hasUrls()){
            event->acceptProposedAction();
        }
        else{
            event->ignore();
        }
    }

    void dropEvent(QDropEvent *event) override
    {
        const QMimeData *mimeData = event->mimeData();
        if (mimeData->hasUrls()){
            QList<QUrl> urlList = mimeData->urls();
            if(0 < urlList.size()){
                QString text = urlList.first().toLocalFile();
                setText(text);  // 设置文本框内容为文件路径或名称
            }
            event->accept();
        }
        else{
            event->ignore();
        }
    }
};

#endif // DRAGDROPLINEEDIT_H

http://www.dtcms.com/a/24926.html

相关文章:

  • DeepSeek R1生成图片总结2(虽然本身是不能直接生成图片,但是可以想办法利用别的工具一起实现)
  • Unity Mirror 多房间匹配
  • DeepSeek AI 完全使用指南:从入门到精通
  • CSDN、markdown环境下如何插入各种图(流程图,时序图,甘特图)
  • 线性模型 - Logistic回归(参数学习具体示例)
  • PHP Web 开发基础
  • 什么是网络安全?网络安全防范技术包括哪些?
  • 【DeepSeek-R1】 API申请(腾讯云)
  • 2022年SCI1区TOP:K-means聚类算法KO,深度解析+性能实测
  • 蓝桥杯 Java B 组之哈希表应用(两数之和、重复元素判断)
  • 基于Odoo与IMAX-8工业物联技术的倍捻机智慧运维实施方案
  • Aseprite详细使用教程(9)——渐变工具
  • 电磁兼容(EMC):整改案例(十二)调整PCB叠层设计解决静电问题
  • SpringAI系列 - RAG篇(四) - QuestionAnswerAdvisor
  • 【拥抱AI】GPT Researcher如何自定义配置LLM
  • 纯新手教程:用llama.cpp本地部署DeepSeek蒸馏模型
  • git 学习(基于Ubuntu和gitee)
  • 动态规划 之 状态机dp
  • JavaEE -JDBC池化思想 与 IDEA导包
  • 【JavaScript】正则表达式综合案例
  • uniapp 支付宝小程序自定义顶部导航栏
  • Fiddler笔记
  • 高考或者单招考试需要考物理这科目
  • 基于SpringBoot的“食物营养分析与推荐网站”的设计与实现(源码+数据库+文档+PPT)
  • 使用 pjsua2 开发呼叫机器人,批量拨打号码并播放固定音频
  • Breakout Tool
  • 2025年网络安全(黑客技术)三个月自学手册
  • MAVEN学习
  • A与B组件自动对齐与组装,无映射直接补偿。
  • python绘图之箱型图