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

pyqt5使用Designer实现按钮上传图片

pyqt5使用Designer实现按钮上传图片

1、ui界面

在这里插入图片描述

2、ui转py代码

其中uploadimg.py代码如下:

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'uploadimg.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(800, 600)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.img_show = QtWidgets.QLabel(self.centralwidget)self.img_show.setGeometry(QtCore.QRect(41, 50, 711, 351))self.img_show.setObjectName("img_show")self.label_2 = QtWidgets.QLabel(self.centralwidget)self.label_2.setGeometry(QtCore.QRect(30, 10, 72, 15))self.label_2.setObjectName("label_2")self.label_3 = QtWidgets.QLabel(self.centralwidget)self.label_3.setGeometry(QtCore.QRect(50, 430, 41, 31))self.label_3.setObjectName("label_3")self.img_path = QtWidgets.QLineEdit(self.centralwidget)self.img_path.setGeometry(QtCore.QRect(100, 430, 371, 31))self.img_path.setObjectName("img_path")self.btn_upload = QtWidgets.QPushButton(self.centralwidget)self.btn_upload.setGeometry(QtCore.QRect(480, 430, 93, 28))self.btn_upload.setObjectName("btn_upload")self.img_list = QtWidgets.QComboBox(self.centralwidget)self.img_list.setGeometry(QtCore.QRect(100, 480, 371, 31))self.img_list.setObjectName("img_list")self.label_4 = QtWidgets.QLabel(self.centralwidget)self.label_4.setGeometry(QtCore.QRect(30, 480, 61, 31))self.label_4.setObjectName("label_4")self.btn_sure = QtWidgets.QPushButton(self.centralwidget)self.btn_sure.setGeometry(QtCore.QRect(480, 480, 93, 28))self.btn_sure.setObjectName("btn_sure")self.btn_next = QtWidgets.QPushButton(self.centralwidget)self.btn_next.setGeometry(QtCore.QRect(590, 480, 93, 28))self.btn_next.setObjectName("btn_next")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 27))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.img_show.setText(_translate("MainWindow", "图片"))self.label_2.setText(_translate("MainWindow", "图片"))self.label_3.setText(_translate("MainWindow", "路径"))self.btn_upload.setText(_translate("MainWindow", "加载"))self.label_4.setText(_translate("MainWindow", "图片列表"))self.btn_sure.setText(_translate("MainWindow", "确定"))self.btn_next.setText(_translate("MainWindow", "下一张"))

3、upload_main.py主函数代码

upload_main.py代码如下:

# -*- coding: utf-8 -*-"""
@contact: 微信 1257309054
@file: upload_main.py
@time: 2023/12/10 11:48
@author: LDC
"""
import os
import sysfrom PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QMainWindow, QApplicationfrom upload_img.uploadimg import Ui_MainWindowclass Window(QMainWindow, Ui_MainWindow):def __init__(self, app):super(QMainWindow, self).__init__()self.app = appself.img_len = 0  # 图片列表self.setup_ui()  # 渲染画布self.connect_signals()  # 绑定触发事件def setup_ui(self):self.setupUi(self)def connect_signals(self):# 绑定触发事件self.btn_upload.clicked.connect(self.btn_upload_clicked)self.btn_sure.clicked.connect(self.btn_sure_clicked)self.btn_next.clicked.connect(self.btn_next_clicked)def btn_upload_clicked(self):# 点击加载按钮self.file_path = self.img_path.text()img_list = os.listdir(self.file_path)self.img_len = len(img_list)self.img_list.addItems([img_list[i] for i in range(self.img_len)])def btn_sure_clicked(self):# 点击确定按钮img = self.img_list.currentText()pix = QPixmap(self.file_path + "\\" + img)self.img_show.setPixmap(pix)self.img_show.setScaledContents(True)def btn_next_clicked(self):# 点击下一张if not self.img_len:returncurrent_next = self.img_list.currentIndex() + 1if current_next >= self.img_len:current_next = 0self.img_list.setCurrentIndex(current_next)self.btn_sure_clicked()if __name__ == '__main__':app = QApplication(sys.argv)mywindow = Window(app)mywindow.show()sys.exit(app.exec_())

4、效果图

在这里插入图片描述

相关文章:

  • Vue 纯css方式实现自定义进度条组件
  • SQL注入概述
  • ffmpeg6.0之ffprobe.c源码分析二-核心功能源码分析
  • git 常用的使用方法
  • 初识Redis
  • 「Verilog学习笔记」多bit MUX同步器
  • Java 中的抽象类与接口:深入理解与应用
  • 配置端口安全示例
  • 探索无监督域自适应,释放语言模型的力量:基于检索增强的情境学习实现知识迁移...
  • MAC下加载动态库
  • VueUse工具库
  • linux命令积累
  • pytorch中的归一化:BatchNorm、LayerNorm 和 GroupNorm
  • Java毕业设计—vue+SpringBoot图书借阅管理系统
  • 【小沐学Python】Python实现TTS文本转语音(speech、pyttsx3、百度AI)
  • HTTP中的ETag在移动客户端的应用
  • IOS评论框不贴底(ios12新bug)
  • React 快速上手 - 07 前端路由 react-router
  • select2 取值 遍历 设置默认值
  • Vim 折腾记
  • 编写符合Python风格的对象
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 规范化安全开发 KOA 手脚架
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 理解在java “”i=i++;”所发生的事情
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​补​充​经​纬​恒​润​一​面​
  • (6)添加vue-cookie
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (阿里云万网)-域名注册购买实名流程
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二十四)Flask之flask-session组件
  • (七)理解angular中的module和injector,即依赖注入
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (一)UDP基本编程步骤
  • (转)fock函数详解
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (轉貼) UML中文FAQ (OO) (UML)
  • .net core docker部署教程和细节问题
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net MVC4 上传大文件,并保存表单
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET序列化 serializable,反序列化
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .sdf和.msp文件读取
  • // an array of int
  • @Autowired自动装配
  • @RequestBody与@ResponseBody的使用
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • []串口通信 零星笔记
  • [Everyday Mathematics]20150130