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

Qt拖拽事件简单实现

1.相关说明

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

2.相关界面

 

3.相关代码

#include "widget.h"
#include "ui_widget.h"
#include <QDragEnterEvent>
#include <QMimeData>
#include <QFileInfo>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);setAcceptDrops(true);ui->plainTextEdit->setAcceptDrops(false);ui->label->setAcceptDrops(false);ui->label->setScaledContents(true);
}Widget::~Widget()
{delete ui;
}void Widget::resizeEvent(QResizeEvent *event)
{QSize sz = ui->plainTextEdit->size();ui->plainTextEdit->move(5, 5);ui->label->move(5, sz.height()+10);ui->plainTextEdit->resize(this->width()-10, sz.height());ui->label->resize(this->width()-10, this->height()-sz.height()-20);event->accept();
}void Widget::dropEvent(QDropEvent *event)
{QString fullPath = event->mimeData()->urls().at(0).path();fullPath = fullPath.right(fullPath.length()-1);QPixmap pixmap(fullPath);ui->label->setPixmap(pixmap);event->accept();
}void Widget::dragEnterEvent(QDragEnterEvent *event)
{ui->plainTextEdit->clear();ui->plainTextEdit->appendPlainText("dragEvent事件,mimeData的format:");for(auto &item : event->mimeData()->formats()){ui->plainTextEdit->appendPlainText(item);}ui->plainTextEdit->appendPlainText("dragEvent事件,mimeData的urls:");for(auto &item : event->mimeData()->urls()){ui->plainTextEdit->appendPlainText(item.path());}if(event->mimeData()->hasUrls()){QString filename = event->mimeData()->urls().at(0).fileName();QFileInfo fileInfo(filename);QString ex = fileInfo.suffix().toUpper();if(ex == "JPG"){event->acceptProposedAction();} else {event->ignore();}} else {event->ignore();}
}

http://www.lryc.cn/news/286490.html

相关文章:

  • 上门回收小程序,打造回收新模式
  • unity项目《样板间展示》开发:火焰和UI设计
  • 即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv
  • MPU6050传感器—姿态检测
  • PaddleOCR封装,在线服务化部署实战(python部署,超新手教程)
  • 采集B站up主视频信息
  • Laykefu客服系统 任意文件上传漏洞复现
  • 《幻兽帕鲁》服务器该如何选购
  • 比较有创意的网站
  • alfred自定义谷歌翻译workflow
  • 【网络安全 -> 防御与保护】专栏文章索引
  • 用户资源(菜单)控制学习使用
  • 邦芒支招:十大秘诀助你轻松进名企
  • 5G_射频测试_参考规范(一)
  • 幻读是什么,用什么隔离级别可以防止幻读?
  • UE5 C++学习笔记 FString FName FText相互转换
  • 【ASOC全解析(三)】machine原理和实战
  • matlab appdesigner系列-常用15-滑块、微调器
  • google翻译相机报错 请安装最新的Google应用,以便使用相机翻译功能
  • openssl3.2/test/certs - 015 - Primary intermediate ca: ca-cert
  • linux中用户及用户组信息
  • 用Go plan9汇编实现斐波那契数列计算
  • Message queue 消息队列--RabbitMQ 【基础入门】
  • 【汇编】 13.3 对int iret和栈的深入理解
  • Git提交大文件报错“remote: Please remove the file from history and try again. ”
  • 接口测试 03 -- 接口自动化思维 Requests库应用
  • SpringBoot:Bean生命周期自定义初始化和销毁
  • Git--基本操作介绍(2)
  • 第08章_面向对象编程(高级)(static,单例设计模式,理解mian方法,代码块,final,抽象类与抽象方法,接口,内部类,枚举类,注解,包装类)
  • Java中Map接口常用的方法