热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

向QTextEdit拖放文件的方法及实现步骤

本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 

 

#ifndef WIDGET_H
#define WIDGET_H#include namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected:void dragEnterEvent(QDragEnterEvent *);void dropEvent(QDropEvent *);private:bool readFile(const QString &filename);private:Ui::Widget *ui;
};#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"#include
#include
#include
#include
#include
#include
#include Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);//禁止textEdit拖放ui->textEdit->setAcceptDrops(false);this->setAcceptDrops(true);
}Widget::~Widget()
{delete ui;
}void Widget::dragEnterEvent(QDragEnterEvent *event)
{if(event->mimeData()->hasFormat("text/uri-list")){event->acceptProposedAction();}
}void Widget::dropEvent(QDropEvent *event)
{QList urls = event->mimeData()->urls(); //get File nameif(urls.empty())return;QString fileName = urls.first().toLocalFile();readFile(fileName);
}bool Widget::readFile(const QString &filename)
{QFile file(filename) ;if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){QMessageBox::warning(this,tr("Text Editor"),tr("Cant read file %1:%\n%2").arg(file.fileName()).arg(file.errorString()));return false;}QTextStream in(&file);QApplication::setOverrideCursor(Qt::WaitCursor);//设置鼠标等待ui->textEdit->setPlainText(in.readAll());QApplication::restoreOverrideCursor();
}

 


转:https://my.oschina.net/osyunwei/blog/718480



推荐阅读
author-avatar
隆威SU_486
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有