基于pyqt5的二维码生成器

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

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值