通过QT designer拖拽,设计的界面如下:
设计的界面以ui文件存储,默认名字是untitled.ui,后台的python代码通过uic.loadui调用界面上的按钮,或者按钮来触发信号
后台python代码如下:
from PyQt5.QtWidgets import QApplication, QMessageBox
from PyQt5 import uic
from PyQt5.QtWidgets import QFileDialog
import os
import cv2 as cv
class Stats:
def __init__(self):
# 从文件中加载UI定义
# 从 UI 定义中动态 创建一个相应的窗口对象
# 注意:里面的控件对象也成为窗口对象的属性了
# 比如 self.ui.button , self.ui.textEdit
self.ui = uic.loadUi("untitled.ui")#untitled.ui
self.ui.OsButton1.clicked.connect(self.inputOS)#ui.pushButton
self.ui.jpgButton1.clicked.connect(self.input_sifxjpg)
self.ui.pngButton1.clicked.connect(self.input_sifxpng)
self.ui.bmpButton1.clicked.connect(self.input_sifxbmp)
self.ui.tifButton1.clicked.connect(self.input_sifxtif)
self.ui.jpegButton1.clicked.connect(self.input_sifxjpeg)
self.ui.OspushButton2.clicked.connect(self.outputOS)
self.ui.bmpButton2.clicked.connect(self.output_sifxbmp)
self.ui.jpgButton2.clicked.connect(self.output_sifxjpg)
self.ui.pngButton2.clicked.connect(self.output_sifxpng)
self.ui.tifButton2.clicked.connect(self.output_sifxtif)
self.ui.jpegButton2.clicked.connect(self.output_sifxjpeg)
self.ui.pushButton_3.clicked.connect(self.img_process)
def inputOS(self):
self.input_filePath = QFileDialog.getExistingDirectory(self.ui, "选择输入图像路径")
self.ui.lineEdit.setText(self.input_filePath )#展示路径
# for f in os.listdir(input_filePath):
# print(f)
def input_sifxjpg(self):
self.input_sifx=".jpg"
def input_sifxpng(self):
self.input_sifx=".png"
def input_sifxbmp(self):
self.input_sifx = ".bmp"
def input_sifxtif(self):
self.input_sifx = ".tif"
def input_sifxjpeg(self):
self.input_sifx = ".jpeg"
def outputOS(self):
self.output_filePath = QFileDialog.getExistingDirectory(self.ui, "选择存储路径")
self.ui.lineEdit_2.setText(self.output_filePath )
def output_sifxbmp(self):
self.output_sifx = ".bmp"
def output_sifxjpg(self):
self.output_sifx=".jpg"
def output_sifxpng(self):
self.output_sifx=".png"
def output_sifxtif(self):
self.output_sifx = ".tif"
def output_sifxjpeg(self):
self.output_sifx = ".jpeg"
def img_process(self):
inputpath = self.input_filePath
input_sifx = self.input_sifx
outputpath = self.output_filePath
output_sifx = self.output_sifx
# print("输入路径:",inputpath)
# print(input_sifx )
# print( outputpath )
# print(output_sifx )
i=0
for f in os.listdir(inputpath):
i=i+1
print(f)
img = cv.imread(os.path.join(inputpath,f))
cv.imwrite( os.path.join(outputpath,f.rstrip(input_sifx) + output_sifx),img)
QMessageBox.about(self.ui,
f'{i}张图像转换完成!',
f'''已将【{input_sifx}】格式图像,转换为【{output_sifx}】格式'''
)
app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()
代码为原创,感谢您的点赞加关注