拖拽和放下事件
来源:互联网 发布:我的世界和村民交易js 编辑:程序博客网 时间:2024/05/22 15:27
mainwindow.h
#include <QMainWindow>#include <QTextEdit>class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();protected: void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event);private: bool readFile(const QString &fileName); QTextEdit *textEdit;private:};
mainwindow.cpp
#include <QDragEnterEvent>#include <QDropEvent>#include <QMimeData>#include <QList>#include <QTextStream>#include <QList>#include <QUrl>#include <QFile>#include <QDebug>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ textEdit = new QTextEdit; setCentralWidget(textEdit); textEdit->setAcceptDrops(false); //关闭QTextEdit的拖放接收,显示被拖放项目的文件内容// textEdit->setAcceptDrops(true);//只显示被拖放项目的文件名 setAcceptDrops(true); //打开主窗口的拖放接收 setWindowTitle(tr("Text Editor"));}MainWindow::~MainWindow(){}void MainWindow::dragEnterEvent(QDragEnterEvent *event){ if (event->mimeData()->hasFormat("text/uri-list")) { //检测事件的mimeData event->acceptProposedAction();// event->accept(); }}void MainWindow::dropEvent(QDropEvent *event){ QList<QUrl> urls = event->mimeData()->urls(); if (urls.isEmpty()) { return; } QString fileName = urls.first().toLocalFile(); qDebug() << "fileName: " << fileName; if (fileName.isEmpty()) { return; } if (readFile(fileName)) { setWindowTitle(tr("%1 - %2").arg(fileName, tr("Drag File"))); }}bool MainWindow::readFile(const QString &fileName){ bool r = false; QFile file(fileName); QTextStream in(&file); if(file.open(QIODevice::ReadOnly|QFile::Text)) {// textEdit->setText(in.ReadAll()); textEdit->setText(in.readAll()); r=true; } return r;}
阅读全文
0 0
- 拖拽和放下事件
- 放下
- 放下
- 放下
- 放下
- 放下
- 放下
- 02_核心概念--07_经典工具箱的拖拽和停止拖拽(放下)
- 轻轻放下和不容侵犯
- Unity3D-UGUI-drag and drop实现拖拽放下功能
- 放下便是拥有更多快乐和从容
- drag and drop放下时删除拖拽的DOM element
- HTC Vive 利用扳机键拾取和放下物体
- 【关于选择】—-(1)放下努力和坚持吧
- 学会放下
- 再放下
- 懂得放下
- 只有放下
- JS-SDK使用权限签名算法
- Django开发踩坑记录
- java如何获取用户真实的ip
- C/C++——C++错误类
- hzau training20170121 a
- 拖拽和放下事件
- apt-get update更新源时,出现“Hash Sum mismatch”问题
- Animation(动画)
- 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)
- spring cloud boot 启动报错java.lang.IllegalStateException: Service id not legal hostname (/user-service)
- 大数据之最小公倍数
- 记一次View.getContext()遇到的大坑
- 【JavaScript DOM编程艺术】- 案例研究:JS图片库
- halcon12_32位破解方法及halcon代码转C++代码步骤