# -*- coding: utf-8 -*-
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QApplication, QMessageBox
import time
from MyQR import myqr
class Ui_MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setupUi()
self.geshi = ".jpg"
def setupUi(self):
self.setFixedSize(391, 248)
self.centralwidget = QtWidgets.QWidget(self)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(150, 180, 75, 23))
self.pushButton.setObjectName("pushButton")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(130, 20, 171, 20))
self.lineEdit.setObjectName("lineEdit")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(40, 20, 111, 20))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(50, 50, 71, 20))
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(40, 85, 71, 20))
self.label_3.setObjectName("label_3")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(130, 50, 161, 20))
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(130, 85, 161, 20))
self.lineEdit_3.setObjectName("lineEdit_3")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(300, 50, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(300, 85, 75, 23))
self.pushButton_3.setObjectName("pushButton_3")
self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton.setGeometry(QtCore.QRect(80, 120, 41, 16))
self.radioButton.setObjectName("radioButton")
self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_2.setGeometry(QtCore.QRect(160, 120, 41, 16))
self.radioButton_2.setObjectName("radioButton_2")
self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_3.setGeometry(QtCore.QRect(240, 120, 41, 16))
self.radioButton_3.setObjectName("radioButton_3")
self.radioButton_4 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_4.setGeometry(QtCore.QRect(300, 120, 89, 16))
self.radioButton_4.setObjectName("radioButton_4")
self.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(self)
self.statusbar.setObjectName("statusbar")
self.setStatusBar(self.statusbar)
self.retranslateUi(self)
self.radioButton.setChecked(True)
self.show()
QtCore.QMetaObject.connectSlotsByName(self)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "二维码生成器"))
self.pushButton.setText(_translate("MainWindow", "生成二维码"))
self.label.setText(_translate("MainWindow", "请输入内容:"))
self.label_2.setText(_translate("MainWindow", "保存路径:"))
self.label_3.setText(_translate("MainWindow", "填入图片路径:"))
self.pushButton_2.setText(_translate("MainWindow", "选择路径"))
self.pushButton_3.setText(_translate("MainWindow", "选择图片"))
self.radioButton.setText(_translate("MainWindow", "jpg"))
self.radioButton_2.setText(_translate("MainWindow", "png"))
self.radioButton_3.setText(_translate("MainWindow", "bmp"))
self.radioButton_4.setText(_translate("MainWindow", "gif"))
self.pushButton_2.clicked.connect(self.getdownpath)
self.radioButton.toggled.connect(lambda :self.btnstate(self.radioButton))
self.radioButton_2.toggled.connect(lambda: self.btnstate(self.radioButton_2))
self.radioButton_3.toggled.connect(lambda: self.btnstate(self.radioButton_3))
self.radioButton_4.toggled.connect(lambda: self.btnstate(self.radioButton_4))
self.pushButton.clicked.connect(self.shengcheng)
self.pushButton_3.clicked.connect(self.getfilename)
def closeEvent(self,QCloseEvent):
res = QMessageBox.question(self, '消息', '是否关闭这个窗口?', QMessageBox.Yes | QMessageBox.No,
QMessageBox.No) # 两个按钮是否, 默认No则关闭这个提示框
if res == QMessageBox.Yes:
QCloseEvent.accept()
else:
QCloseEvent.ignore()
def btnstate(self, btn):
# 输出按钮1与按钮2的状态,选中还是没选中
if btn.text() == 'jpg':
if btn.isChecked() == True:
self.geshi=".jpg"
print(btn.text() + " is selected")
if btn.text() == "png":
if btn.isChecked() == True:
self.geshi = '.png'
print('png')
if btn.text() == "bmp":
if btn.isChecked() == True:
self.geshi='.bmp'
print('bmp')
if btn.text() == "gif":
if btn.isChecked() == True:
self.geshi ='.gif'
print('gif')
def local(self):
strtime = time.strftime('%Y%m%d%H%M%S', time.localtime())
return strtime
def getdownpath(self):
dirname=QtWidgets.QFileDialog.getExistingDirectory(self, 'Open file')
self.lineEdit_2.setText(dirname)
def getfilename(self):
fname = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file', '/home')
self.lineEdit_3.setText(fname[0])
def shengcheng(self):
try:
print(self.lineEdit.text(),self.lineEdit_2.text(),self.local()+self.geshi)
if self.lineEdit.text()!='' and self.lineEdit_2.text()!='' and self.lineEdit_3.text()!='':
ver, level, qr_name = myqr.run(words=self.lineEdit.text(), save_dir=self.lineEdit_2.text(), save_name=self.lineEdit.text()+self.geshi,
picture=self.lineEdit_3.text(),colorized=True)
QMessageBox.information(self, '提示', '生成二维码成功至{}'.format(self.lineEdit_2.text()+"/"+self.lineEdit.text()+self.geshi))
elif self.lineEdit.text()!='' and self.lineEdit_2.text()!='':
ver, level, qr_name = myqr.run(words=self.lineEdit.text(), save_dir=self.lineEdit_2.text(), save_name=self.lineEdit.text()+self.geshi)
QMessageBox.information(self, '提示','生成二维码成功至{}'.format(self.lineEdit_2.text() + "/" + self.lineEdit.text()+ self.geshi))
else:
QMessageBox.critical(self, '错误', '内容或者路径输入框不能为空')
except Exception as e:
QMessageBox.critical(self, '错误', '%s'%e)
if __name__ == '__main__':
app = QApplication(sys.argv)
ui = Ui_MainWindow()
sys.exit(app.exec_())