PYQT实现上传图片,保存图片

news2024/11/15 19:58:58

代码如下 

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys

class MyWindow(QMainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()

        self.setWindowTitle("图片处理")
        self.setGeometry(200, 200, 500, 400)

        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)
        main_layout = QVBoxLayout()  # 整体的垂直布局

        # 上面两个 label 的水平布局
        label_layout = QHBoxLayout()
        self.label1 = QLabel()
        label_layout.addWidget(self.label1)  # 图片 1 居左

        self.label2 = QLabel()
        label_layout.addWidget(self.label2)  # 图片 2 居右
        main_layout.addLayout(label_layout)  # 将水平布局添加到垂直布局

        # 下面两个按钮的水平布局
        button_layout = QHBoxLayout()
        self.button1 = QPushButton("打开图片")
        self.button1.clicked.connect(self.open_image)
        button_layout.addWidget(self.button1)

        self.button2 = QPushButton("复制图片")
        self.button2.clicked.connect(self.copy_image)
        button_layout.addWidget(self.button2)
        main_layout.addLayout(button_layout)  # 将水平布局添加到垂直布局

        self.central_widget.setLayout(main_layout)  # 设置中央部件的布局

    def open_image(self):
        file_dialog = QFileDialog()
        file_path, _ = file_dialog.getOpenFileName(self, "选择图片", "", "Image Files (*.jpg *.png)")
        if file_path:
            pixmap = QPixmap(file_path)
            self.label1.setPixmap(pixmap)

    def copy_image(self):
        pixmap = self.label1.pixmap()
        if pixmap:
            self.label2.setPixmap(pixmap)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

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

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

相关文章

Unity的物理系统

目录 3D 物理系统 主要组件 2D 物理系统 主要组件 物理引擎的选择与应用 物理模拟的控制与优化 Unity中Nvidia PhysX引擎与Box2D引擎在性能和功能上的具体比较是什么? 如何在Unity项目中实现Havok物理引擎,并与PhysX或Box2D引擎结合使用&#xf…

C/C++跳动的爱心代码

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C圣诞树代码 写在前面 C语言实现简单版的跳动的红色爱心。 语言需求:C语…

pdf翻译成中文的工具有哪些?pdf翻译商务学习两不误

在全球化日益加深的今天,pdf文档的国际交流愈发频繁,但语言障碍却常常让人头疼。 别担心,寻找一款可靠的pdf翻译成中文在线软件,已成为解决这一难题的关键。 今天,就让我们一起探索五款强大的pdf翻译器,它…

二叉搜索树的遍历方法

前序遍历 访问顺序 根子树->左子树->右子树 首先访问根节点&#xff0c;然后递归的前序遍历左子树&#xff0c;最后递归的前序遍历右子树 void preOrder(TreeNode* node) { if (node nullptr) return; cout << node->val << ; // 访问根节点 pre…

系统编程-文件操作和时间编程

3 文件操作和时间编程 目录 3 文件操作和时间编程 一、时间编程 1、有关时间的shell命令 2、时间API &#xff08;1&#xff09;获取日历时间 &#xff08;2&#xff09;将日历时间转化为本地时间 &#xff08;3&#xff09;将日历时间转化为格林威治时间 &#xff08…

【通过禁用任务管理器实现进程保活】(bat)

效果展示 上代码&#xff0c;球球给我点个关注吧 该程序的操作实际是开启后挂在后台循环100万次 kill掉taskmgr.exe的命令的bat脚本 echo off if "%1""hide" goto CmdBegin start mshta vbscript:createobject("wscript.shell").run(""…

git 学习--GitHub Gitee码云 GitLab

1 集中式和分布式的区别 1.1 集中式 集中式VCS必须有一台电脑作为服务器&#xff0c;每台电脑都把代码提交到服务器上&#xff0c;再从服务器下载代码。如果网络出现问题或服务器宕机&#xff0c;系统就不能使用了。 1.2 分布式 分布式VCS没有中央服务器&#xff0c;每台电脑…

基于Java+SpringBoot+Vue的体育馆管理系统的设计与实现

基于JavaSpringBootVue的体育馆管理系统的设计与实现 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&…

JavaScript初级——基础知识

一、JS的HelloWord 1、JS的代码需要编写到script标签中 2、JS的执行是根据语句从上到下一次执行的。 二、JS的编写位置 1、可以将js代码编写到标签的onclick属性中&#xff0c;当我们点击按钮时&#xff0c;js代码才会执行。 2、可以将js代码写在超链接的href属性中&#xff0…

fastzdp_sqlmodel新增get_first和is_exitsts方法

说明 经过fastzdp_login的整合&#xff0c;我们发现&#xff0c;fastzdp_sqlmodel还可以继续封装两个便捷的方法。 get_first&#xff1a;获取查询结果集中的第一条数据is_exitsts&#xff1a;判断数据是否已存在 封装get_first方法 def get_first(engine, model, query_di…

优化算法|牛顿-拉夫逊优化算法(NRBO)详解

算法介绍 本篇推文将介绍一种新的智能优化算法&#xff0c;牛顿-拉夫逊优化算法(Newton-Raphson-based optimizer, NBRO)&#xff0c;该成果由学者Sowmya等人于2024年2月发表于期刊《Engineering Applications of Artificial Intelligence》。文末提供了原文作者的完整代码git…

【python爬虫】邮政包裹物流查询2瑞数6加密

大家好呀&#xff0c;我是你们的好兄弟【星云牛马】&#xff0c;今天给大家带来的是瑞数6的补环境的总结&#xff0c;补环境肯定是需要一些基础补环境知识的&#xff0c;所以建议没有基础的小伙伴可以加入学习群进行学习&#xff0c;有基础的伙伴加入交流起来。 QQ群&#xff…

《向量数据库指南》——AI应用部署落地与权限安全差别

部署落地与权限安全差别 RAG部署有许多系统化优化点 RAG分化程度非常高,因为RAG是许多东西的组成,类似大数据生态,里边有非常多的环节,从数据抓取、数据清洗、数据挖掘,然后预处理,再经过模型分析,比如说embedding模型生成向量,然后再做数据的持久化,serving stack,就…

打卡学习Python爬虫第二天|数据解析Re 正则表达式

在前面的学习中&#xff0c;我们已经基本掌握了抓取整个网页的基本技能&#xff0c;但是在实际的需求当中&#xff0c;我们不需要整个网页的内容&#xff0c;只需要一小部分。这就涉及到数据提取的问题。 三种数据解析的方式&#xff1a;可混合使用 1、re解析 2、bs4解析 3…

无人机低成本集群技术实现详解

在现代科技的迅猛发展中&#xff0c;无人机技术已广泛应用于军事侦察、环境监测、农业植保、物流配送等多个领域。其中&#xff0c;无人机集群技术作为提高任务效率、降低成本的重要手段&#xff0c;正受到越来越多的关注。本项目旨在研发一套低成本无人机集群系统&#xff0c;…

<C语言>指针的深度学习

目录 一、字符指针 二、指针数组 三、数组指针 1.数组指针的定义 2.&数组名与数组名 3.数组指针的使用 四、数组参数、指针参数 1.一维数组传参 2.二维数组传参 3.一级指针传参 4.二级指针传参 五、函数指针 六、函数指针数组 七、指向函数指针数组的指针 八、回调函数 1…

微信云开发云存储全部下载

一、安装 首先按照这个按照好依赖 安装 | 云开发 CloudBase - 一站式后端云服务 npm i -g cloudbase/cli 二、登录 tcb login 下载 首先在你要下载到的本地文件内创建一个名为&#xff1a;cloudbaserc.json 的json文件。 填入你的id {"envId":"你的云开发环…

STM32基础篇:定时器 × 时基单元

定时器简介 定时器是一种专门负责定时功能的片上外设。F1系列的单片机最多有14个定时器&#xff08;TIM1~TIM14&#xff09;&#xff0c;具体如下表&#xff1a; 类型外设名称基本定时器TIM6和TIM7通用定时器TIM2~TIM5和TIM9~TIM14高级定时器TIM1和TIM8 基本定时器是功能最简…

Chrome浏览器无法打开无痕模式的解决方案

1.在设置---关于Chrome里面进行升级&#xff0c;升级到最新版本 2.windowsR打开运行输入regedit打开注册表 3、在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome下面找到IncognitoModeAvailability将值修改为0,重新打开浏览器即可打开无痕模式

【SpringBoot】SpringBoot 中 Bean 管理和拦截器的使用

目录 1.Bean管理 1.1 自定义Bean对象 1.2 Bean的作用域和生命周期 2.拦截器的使用 1.Bean管理 默认情况下&#xff0c;Spring项目启动时&#xff0c;会把我们常用的Bean都创建好放在IOC容器中&#xff0c;但是有时候我们自定义的类需要手动配置bean&#xff0c;这里主要介绍…