使用拖放打开文档
来源:互联网 发布:全球经济增长数据 编辑:程序博客网 时间:2024/05/13 10:10
Qt提供了强大的拖放机制,可以在帮助中通过Drag and Drop 关键字查看 ,拖放操作分为拖动(Drag)和放下(Drop)两种操作,当数据拖动时,会被存储为MIME(Multipurpose Internet Mail Extensions)类型。Qt中使用QMimeData类来表示MIME类型的数据,并使用QDrag类来完成数据的转移,而整个拖放操作都是在几个鼠标事件和拖放事件中完成的。
头文件:
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QMimeData>#include <QUrl>#include <QFile>#include <QTextStream>#include <QDragEnterEvent>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();protected: void dragEnterEvent(QDragEnterEvent *event);//拖动进入 void dropEvent(QDropEvent *event);//放下事件private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H源文件:
main.cpp
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); setAcceptDrops(true);//接收拖入}MainWindow::~MainWindow(){ delete ui;}void MainWindow::dragEnterEvent(QDragEnterEvent *event){ if(event->mimeData()->hasUrls()) { event->acceptProposedAction(); //同意提议 } else { event->ignore();//驳回提议 }}void MainWindow::dropEvent(QDropEvent *event){ if(event->mimeData()->hasUrls()) { QList<QUrl> urlist = event->mimeData()->urls(); QString fileName = urlist.at(0).toLocalFile(); QFile file(fileName); if(!file.open(QIODevice::ReadOnly)) { return; } QTextStream in(&file); ui->textEdit->setText(in.readAll()); }}界面文件:
运行效果:(是主窗口接收拖入,不是Text Edit部件)
阅读全文
0 0
- 使用拖放打开文档
- 7-干货! QT -实现使用拖放打开文件,以及打开可拖动的图片
- .Net通过拖放打开文件
- 使用自动化打开并打印WORD文档
- 使用自动化打开并打印WORD文档
- 关于phonegap 打开文档的插件使用
- 无法使用evince命令打开pdf文档
- 使用txt文档注意及时关闭打开
- Android使用POI打开word文档
- tlistview使用--拖放操作
- Qt使用拖放
- 20_使用拖放
- 设置word打开文档时默认使用“文档结构图”视图
- c#中实现文件拖放打开
- C#实现文件拖放并打开文件
- Delphi : 文件的拖放和打开,拖拽
- 使用拖放的简单方法
- HTML5 拖放API的使用
- 以管理员身份运行bat代码
- 超级详细Tcpdump 的用法
- thinkphp 权限无限极分类
- VS 2013驱动开发 + Windbg + VM双机调试(亲测+详解)
- 线性代数3——矩阵乘法
- 使用拖放打开文档
- CCF 201609-3 炉石传说
- 描述性统计
- http状态码
- Java基础知识-5、认识对象
- python链接爬虫案例
- MATLAB2012a反复激活
- ECS下CentOS系统中WEB的基本配置(也适用于VM)
- C++——类型转换