pyqt拖入图片并显示

news2024/11/16 23:58:51

pyqt拖入图片并显示

  • 介绍
  • 效果
  • 代码

介绍

像拖入文本一样,把图片拖入到窗体中显示。

效果

在这里插入图片描述
在这里插入图片描述

代码

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtGui import QPixmap, QDragEnterEvent, QDropEvent
from PyQt5.QtCore import Qt, QFile, QIODevice
from PyQt5.QtCore import QMimeData


class ImageDropWidget(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        # 创建布局
        layout = QVBoxLayout()

        # 创建QLabel用于显示图片
        self.label = QLabel(self)
        layout.addWidget(self.label)

        # 设置窗口布局
        self.setLayout(layout)

        # 设置窗口标题和大小
        self.setWindowTitle('Image Dropper')
        self.setGeometry(300, 300, 600, 400)

        # 允许窗口接受拖拽
        self.setAcceptDrops(True)

    def dragEnterEvent(self, event: QDragEnterEvent):
        # 检查拖拽的数据中是否包含文件
        if event.mimeData().hasUrls():
            for url in event.mimeData().urls():
                if url.scheme() == 'file':
                    event.acceptProposedAction()
                    return
        event.ignore()

    def dropEvent(self, event: QDropEvent):
        # 获取拖拽的文件URL
        if event.mimeData().hasUrls():
            for url in event.mimeData().urls():
                if url.scheme() == 'file':
                    # 从URL获取文件路径
                    file_path = url.toLocalFile()
                    # 加载图片
                    self.loadImage(file_path)
                    # 接收操作
                    event.acceptProposedAction()
                    return
        event.ignore()

    def loadImage(self, file_path):
        # 加载图片并显示
        pixmap = QPixmap(file_path)
        self.label.setPixmap(pixmap.scaled(self.label.size(), Qt.KeepAspectRatio))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = ImageDropWidget()
    ex.show()
    sys.exit(app.exec_())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1637819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Co-assistant Networks for Label Correction论文速读

文章目录 Co-assistant Networks for Label Correction摘要方法Noise DetectorNoise Cleaner损失函数 实验结果 Co-assistant Networks for Label Correction 摘要 问题描述: 描述医学图像数据集中存在损坏标签的问题。强调损坏标签对深度神经网络性能的影响。 提…

基于springboot实现迪迈手机商城设计系统项目【项目源码+论文说明】

基于springboot实现迪迈手机商城设计系统演示 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。…

53.HarmonyOS鸿蒙系统 App(ArkTS) socket套接字连接失败无效参数--invalid argument

ark ts socket套接字连接失败无效参数--invalid argument 绑定本机真实连接的WIFI的IP,不要绑定127.0.0.1

【树——数据结构】

文章目录 1.基本概念2.基本术语1.结点之间的关系描述2.结点,树的属性描述3.有序树,无序树4.森林 3.树的性质考点1考点2考点3考点4 4.树的存储结构5.树和森林的遍历 1.基本概念 结点,根节点,分支结点,叶子结点&#xf…

民航电子数据库:mysql与cae(insert语法差异)

目录 示例1、cae插入数据时不支持value关键字,只能使用values2、insert时,就算是自增主键,只要新增时包含了主键,该主键就必须有值,否则会报错:字段xxx不能取空值 对接民航电子数据库,本篇记录i…

php反序列化以及相关例题

目录 一、什么是序列化和反序列化? 二、相关函数 serialize()函数: unserialize()函数:反序列化 三、PHP序列化格式 四、序列化与反序列化的作用 五、各种数据类型序列化后的效果 六、魔术方法 七、反序列化的一些绕过 八…

CSDN如何在个人主页开启自定义模块|微信公众号

目前只有下面三种身份才具有这个功能。 VIP博客专家企业博客 栏目内容不知道怎么写HTML的,可以联系我帮你添加

Leetcode—1232. 缀点成线【简单】

2024每日刷题&#xff08;122&#xff09; Leetcode—1232. 缀点成线 算法思想 实现代码 class Solution { public:bool checkStraightLine(vector<vector<int>>& coordinates) {int x0 coordinates[0][0];int y0 coordinates[0][1];int x1 coordinates[1…

Ubuntu系统设置中文及中文输入法(手把手,学不会打我)

前言 最近开始搞C系统编程的学习&#xff0c;整了个Ubuntu系统&#xff0c;进去发现是英文系统&#xff0c;我一开始觉得也能接受&#xff0c;就当练英文&#xff0c;反正那些命令也都是用英文&#xff0c;不过后面等我暗转了一个Chrome并且开始用这里的软件去搜问题时&#x…

抓取内网Windows明文密码与hashdump抓取密文

抓取内网Windows明文密码与hashdump抓取密文 一、msf远程控制实验1、生成一个木马控制程序--mpf.exe2、启用MSF攻击平台3、加载模块和选择payload4、设置payload参数并且进行监听5、提权6、hashdump抓取hash值 二、实验思考题&#xff1a;2.1 windows登录的明文密码&#xff0c…

C语言-分支和循环语句、函数、数组、操作符、指针、结构体

目录 一、scanf和getchar二、产生随机数函数三、辗转相除法求最大公约数四、函数的参数4.1 实际参数&#xff08;实参&#xff09;4.2 形式参数&#xff08;形参&#xff09;4.3 内存分配 五、函数的调用5.1 传值调用5.1 传址调用 六、函数的声明和定义6.1 函数的声明6.2 函数的…

ESD管 AZ5825-01F国产替代型号ESDA05CPX

已经有很多客户选用雷卯的ESDA05CPX替代Amazing 的 AZ5825-01F&#xff0c; 客户可以获得更好的价格和更快的交期&#xff0c;主要应用于对5V供电和4.5V供电电流较大的Vbus线路插拔保护等。 雷卯ESDA05CPX优势&#xff1a; 带回扫 &#xff0c;钳位电压Vc 低&#xff0c;IPP为…

springboot+vue学习用品商店商城系统java毕业设计ucozu

该系统利用java语言、MySQL数据库&#xff0c;springboot框架&#xff0c;结合目前流行的 B/S架构&#xff0c;将互动式学习用品网上商城平台的各个方面都集中到数据库中&#xff0c;以便于用户的需要。该系统在确保系统稳定的前提下&#xff0c;能够实现多功能模块的设计和应用…

LeetCode 102.对称二叉树

题目描述 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树中节点数…

rabbitMq 0 到1

前言 工作中MQ的使用场景是数不胜数&#xff0c;每个公司的技术选型又不太一样&#xff0c;用的哪个MQ&#xff0c;我们必须要先玩起来&#xff0c;RabbitMQ在windows安装遇到很多问题&#xff0c;博客也是五花八门&#xff0c;算了还是自己搞吧&#xff0c;记录一下&#xff…

力扣HOT100 - 131. 分割回文串

解题思路&#xff1a; class Solution {List<List<String>> res new ArrayList<>();List<String> pathnew ArrayList<>();public List<List<String>> partition(String s) {backtrack(s,0);return res;}public void backtrack(Str…

用FPGA+DAC输出“心”形波

1.前言 之前在做信号处理的时候整了一下活&#xff0c;用FPGADAC&#xff08;数模转换器&#xff09;&#xff0c;输出了一个爱心形状的波形&#xff0c;今天整理资料的时候偶然发现了他&#xff0c;现在把他分享出来。当时将DAC的输出接在示波器上显示如下图所示&#xff1a; …

黄金投资新手指南:投资现货黄金怎样开户?

在金融市场中&#xff0c;黄金一直是备受关注的投资品种。近年来&#xff0c;随着全球经济的波动和不确定性增加&#xff0c;越来越多的投资者开始关注现货黄金投资。对于黄金投资新手来说&#xff0c;如何开户进行现货黄金投资是一个非常重要的问题。 让我们明确一下什么是现货…

cnPuTTY 0.81.0.1—PuTTY Release 0.81中文版本简单说明~~

2024-04-15 官方发布PuTTY 0.81本次发布主要修复了使用521位ECDSA密钥时的一个严重漏洞(CVE-2024-31497)。 如果您使用521位ECDSA私钥与任何早期版本的PuTTY组合&#xff0c;请考虑私钥已泄露的问题。强烈建议从相关文件中删除公钥&#xff0c;并使用新版本程序重新生成密钥对。…

鸿蒙launcher浅析

鸿蒙launcher浅析 鸿蒙launcher源码下载鸿蒙launcher模块launcher和普通的应用ui展示的区别 鸿蒙launcher源码下载 下载地址如下&#xff1a; https://gitee.com/openharmony/applications_launcher 鸿蒙launcher模块 下载页面已经有相关文件结构的介绍了 使用鸿蒙编辑器D…