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_())