Qt 打开文件列表选择文件,实现拖拽方式打开文件

这篇具有很好参考价值的文章主要介绍了Qt 打开文件列表选择文件,实现拖拽方式打开文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 实现打开文件列表选择文件

1.1. 创建 Qt 工程,并添加几个简单控件

这里笔者选用的是 QMainWindow,创建好工程后在 ui 界面设计中添加 QLineEditQPushBtton至少这两个控件,如下图摆放。

Qt 打开文件列表选择文件,实现拖拽方式打开文件,Qt,qt,开发语言

1.2. 头文件中添加相关操作

mainwindow.h 中添加所要用到的所有头文件。

#include <QString>
#include <QFileDialog>
#include <QStandardPaths>

并声明一个槽函数用于打开文件浏览器。

private slots:
    void showFiles(void);	// 用于打开文件浏览器

public:
    void initUi(void);		// 初始化 UI 界面
    
private:
    QString *fileName;		// 用于保存文件路径

1.3. 在 cpp 文件中实现

initUi 函数,实现如下:

void ExcelProcess::initUi()
{
    this->ui->Lab_FilePath->setText("File Path:");
    this->ui->PBtn_View->setText("Open File");

    connect(this->ui->PBtn_View, SIGNAL(clicked()), this, SLOT(showFiles()));

}

showFiles 槽函数,实现如下:

void ExcelProcess::showFiles()
{
    QString str = QFileDialog::getOpenFileName(this, "File Explorer", QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation),"Excel 文件(*.xls *.xlsx);;All file(*.*)");
    this->ui->LEdit_FilePath->setText(str.toUtf8());
    *this->fileName = this->ui->LEdit_FilePath->text();

    qDebug() << *this->fileName << "\n";
}

1.4. 效果演示

完成如上函数,并在构造函数中调用即可,运行查看效果。

Qt 打开文件列表选择文件,实现拖拽方式打开文件,Qt,qt,开发语言

2. 实现文件拖拽的方式加载

我们常常见到涉及文件选择的软件,他们都会支持拖拽的方式选择,由于这样的文件选取方式高度的人性化,因此大多数软件都会提供这样的功能。下面就来看看用 Qt 如何实现吧。

2.1. 添加相关头文件,并声明相关操作函数

添加头文件:

#include <QDragEnterEvent>
#include <QDropEvent>
#include <QMimeData>

这里是通过重写下面两个函数来实现文件拖拽功能:

protected:
    void dragEnterEvent(QDragEnterEvent *event);    // 拖动进入事件

    void dropEvent(QDropEvent *event);      // 放下事件

2.2. 在 cpp 文件中实现其具体功能

在构造函数中添加如下代码:

this->setAcceptDrops(true);     // 设置主界面接收拖动进来的文件

拖动函数重写:

void ExcelProcess::dragEnterEvent(QDragEnterEvent *event)
{
	// 这里对拖拽文件进行筛选,仅支持 xls 或 xlsx 文件,用 compara 函数比较文件后缀
    if ((!event->mimeData()->urls()[0].fileName().right(3).compare("xls")) || (!event->mimeData()->urls()[0].fileName().right(4).compare("xlsx"))) {
        event->acceptProposedAction();
    } else {
        event->ignore();	// 若非这两种文件则不接受鼠标事件
    }

    return ;
}

void ExcelProcess::dropEvent(QDropEvent *event)
{
    const QMimeData *qm = event->mimeData();
    *this->fileName = qm->urls()[0].toLocalFile();  // 获取拖入的文件名
    this->ui->LEdit_FilePath->setText(*this->fileName);

    this->movie_01->stop();
    this->movie_01->setFileName(":/bk/pic/bk_02.gif");
    this->movie_01->start();

    return ;
}

2.3. 效果演示

完成如上函数,运行查看效果。

Qt 打开文件列表选择文件,实现拖拽方式打开文件,Qt,qt,开发语言文章来源地址https://www.toymoban.com/news/detail-681191.html

#完

到了这里,关于Qt 打开文件列表选择文件,实现拖拽方式打开文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • qt 窗口实现打开文件夹浏览资源(纯代码实现,后附代码)

     新建 widget 项目可参考 QT入门初学者——如何新建一个工程项目(详细)_guuuuug的博客-CSDN博客_qt新建工程   实现界面,点击浏览会打开文件夹 选中文件,窗口显示文件名,文件路径 过长的文字会在最后显示...,鼠标悬浮在文字栏会显示全部文字。 点击右下角打开可以实现打

    2024年02月11日
    浏览(32)
  • Qt双击某一文件通过自己实现的程序打开,并加载文件显示

    简述 在Windows系统中,双击某类扩展名的文件,通过自己实现的程序打开文件,并正确加载及显示文件。有两种方式可以到达这个目的。 对于系统不知道的扩展名的文件,第一次打开时,需要自行设置打开方式。 设置流程: 右键或双击文件-打开方式,弹出以下界面 点击“在

    2024年02月11日
    浏览(35)
  • Qt —— 编译Qt5版本QFTP库,并实现连接服务、获取列表、上传、下载、删除文件等操作(附源码、附基于Qt5编译好的QFTP库)

    示例效果1   示例效果2   介绍      QFTP是Qt4的库,Qt5改用了QNetworkAccessManager来代替。但是Qt5提供的QNetworkAccessManager仅支持FTP的上传和下载,所以只能 将QFTP库编译为Qt5的库来进行调用。      QFTP在Github的下载地址:https://github.com/qt/qtftp   客户端源码生成的rele

    2024年01月20日
    浏览(34)
  • Qt Designer如何安装,打开方式

    Qt Designer 分为PyQt5 Qt Designer、PySide6 Qt Designer,下面分别介绍各自的安装方式和打开方式 首先,检查是否安装了python,使用cmd打开命令行窗口,输入: 若出现python的版本号,则已安装;若没有安装,可以直接官网下载 第1种.PyQt5 Qt Designer 依次在命令行窗口输入: 即可安装PyQ

    2024年02月02日
    浏览(33)
  • Qt拖拽事件简单实现

    重写resizeEvent(这个按需重写)、dragEnterEvent(拖拽事件函数)、dropEvent(放下事件函数),可以将本地图片拖拽到label标签中  

    2024年01月20日
    浏览(40)
  • 个人实现的QT拼图游戏(开源),QT拖拽事件详解

    效果图 引言 在学习QT demo时,发现有一个拼图demo,介绍拖拽事件的。以此为蓝本加了 亿点 修饰,就诞生了这个游戏。 玩法 游戏为拼图游戏,分为俩种模式(闯关与休闲)。 闯关模式:在规定的时间内完成拼图,共有四关,有三种难度,每种难度所需的时间不一致。 休闲模

    2024年01月20日
    浏览(33)
  • CloudCompare 二次开发(6)——插件中拖拽添加Qt窗口(区域生长算法为例)

    本文由CSDN点云侠原创,原文链接。爬虫网站自重。   手动拖拽的方式搭建Qt对话框界面的制作流程,以PCL中的点云区域生长算法为例进行制作。 1、将 ....pluginsexample 路径下的 ExamplePlugin 复制一份并修改名字为 CCPointCloudProcess 。 2、创建窗口UI文件 使用任意Qt工程新建对话

    2023年04月11日
    浏览(42)
  • Qt(八)文本文件(打开、修改与保存)

    演示文本文件的打开,修改与保存。主要是熟悉相应的类代码使用。 一、UI布局 mainwindow.h mainwindow.cpp 二、效果演示

    2024年02月14日
    浏览(28)
  • C++ Qt 开发:ListWidget列表框组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍 ListWidget 列表框组件的常用方法及灵活运用。 QListWidget 是 Qt 中的一个列表框组

    2024年02月04日
    浏览(32)
  • VS中Qt项目不能打开ui文件

    在VS中创建的Qt项目,若不能打开ui文件,或者弹出以下提示的:其本质是找不到designer.exe的路径 那么需要手动添加designer.exe的路径 第一步:右键点击打不开的ui文件,选择打开方式 第二步:点击添加 第三步:点击右侧浏览查找对应的Qt编译器安装路径的designer,然后点击确定

    2024年02月13日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包