0.概述
业余时间学Python,打发时间。这次算是做了个练习,主要用到pyqt5、qrcode、PIL库。学Python太难了,感觉越学越迷糊,教程书都是入门的东西,真正做起小程序来根本就搞不来,一顿百度操作。说实在,很多东西都没有具体的讲解,纯粹靠蒙。
1.引用的库
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import QFont, QColor
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox , QFileDialog , QColorDialog
from PyQt5.QtGui import QPixmap
import sys, os, qrcode, ihelp, idata
from PIL import Image , ImageQt , ImageEnhance , ImageDraw
2.重载标签类
class MyLabel(QtWidgets.QLabel): #重载标签类,添加双击事件信号
DoubleClicked = QtCore.pyqtSignal() #自定义信号
def __init__(self, parent=None):
super(MyLabel, self).__init__(parent)
def mouseDoubleClickEvent(self, event): #双击事件
if event.buttons () == QtCore.Qt.LeftButton:
self.DoubleClicked.emit() #发射信号
3.主窗口ui函数
class Ui_MainWindow(QWidget):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(750, 545)
MainWindow.setFixedSize(MainWindow.width(), MainWindow.height()) #固定窗口大小,取消最大化
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("source/icon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.setWindowIcon(QtGui.QIcon("source/icon.ico"))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton_creatqrcode = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_creatqrcode.setGeometry(QtCore.QRect(570, 370, 81, 31))
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap("source/creat.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton_creatqrcode.setIcon(icon1)
self.pushButton_creatqrcode.setObjectName("pushButton_creatqrcode")
self.label_qrcode_img = QtWidgets.QLabel(self.centralwidget)
self.label_qrcode_img.setGeometry(QtCore.QRect(400, 10, 341, 341))
self.label_qrcode_img.setFrameShape(QtWidgets.QFrame.Box)
self.label_qrcode_img.setFrameShadow(QtWidgets.QFrame.Raised)
self.label_qrcode_img.setAlignment(QtCore.Qt.AlignCenter)
self.label_qrcode_img.setObjectName("label_qrcode_img")
self.pushButton_saveqrcode = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_saveqrcode.setGeometry(QtCore.QRect(660, 370, 81, 31))
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap("source/save.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton_saveqrcode.setIcon(icon2)
self.pushButton_saveqrcode.setObjectName("pushButton_saveqrcode")
self.pushButton_about = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_about.setGeometry(QtCore.QRect(660, 470, 81, 31))
self.pushButton_about.setObjectName("pushButton_about")
self.pushButton_help = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_help.setGeometry(QtCore.QRect(570, 470, 81, 31))
self.pushButton_help.setObjectName("pushButton_help")
self.groupBox_center_pic = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_center_pic.setGeometry(QtCore.QRect(10, 440, 251, 101))
self.groupBox_center_pic.setChecked(False)
self.groupBox_center_pic.setObjectName("groupBox_center_pic")
self.label_center_picture = QtWidgets.QLabel(self.groupBox_center_pic)
self.label_center_picture.setGeometry(QtCore.QRect(10, 20, 71, 71))
self.label_center_picture.setFrameShape(QtWidgets.QFrame.Box)
self.label_center_picture.setAlignment(QtCore.Qt.AlignCenter)
self.label_center_picture.setObjectName("label_center_picture")
self.labe_2 = QtWidgets.QLabel(self.groupBox_center_pic)
self.labe_2.setGeometry(QtCore.QRect(160, 30, 24, 12))
self.labe_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.labe_2.setObjectName("labe_2")
self.comboBox_pic_size = QtWidgets.QComboBox(self.groupBox_center_pic)
self.comboBox_pic_size.setGeometry(QtCore.QRect(190, 20, 51, 30))
self.comboBox_pic_size.setObjectName("comboBox_pic_size")
self.labe_3 = QtWidgets.QLabel(self.groupBox_center_pic)
self.labe_3.setGeometry(QtCore.QRect(160, 70, 24, 12))
self.labe_3.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.labe_3.setObjectName("labe_3")
self.comboBox_pic_circle = QtWidgets.QComboBox(self.groupBox_center_pic)
self.comboBox_pic_circle.setGeometry(QtCore.QRect(190, 60, 51, 30))
self.comboBox_pic_circle.setObjectName("comboBox_pic_circle")
self.pushButton_addcenterpic = QtWidgets.QPushButton(self.groupBox_center_pic)
self.pushButton_addcenterpic.setGeometry(QtCore.QRect(90, 20, 51, 31))
self.pushButton_addcenterpic.setObjectName("pushButton_addcenterpic")
self.pushButton_delcenterpic = QtWidgets.QPushButton(self.groupBox_center_pic)
self.pushButton_delcenterpic.setGeometry(QtCore.QRect(90, 60, 51, 31))
self.pushButton_delcenterpic.setObjectName("pushButton_delcenterpic")
self.groupBox_bk_pic = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_bk_pic.setGeometry(QtCore.QRect(270, 360, 291, 181))
self.groupBox_bk_pic.setObjectName("groupBox_bk_pic")
self.comboBox_bk_contrast = QtWidgets.QComboBox(self.groupBox_bk_pic)
self.comboBox_bk_contrast.setGeometry(QtCore.QRect(230, 140, 51, 30))
self.comboBox_bk_contrast.setObjectName("comboBox_bk_contrast")
self.labe_5 = QtWidgets.QLabel(self.groupBox_bk_pic)
self.labe_5.setGeometry(QtCore.QRect(180, 150, 36, 12))
self.labe_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.labe_5.setObjectName("labe_5")
self.comboBox_bk_tran = QtWidgets.QComboBox(self.groupBox_bk_pic)
self.comboBox_bk_tran.setGeometry(QtCore.QRect(230, 100, 51, 30))
self.comboBox_bk_tran.setObjectName("comboBox_bk_tran")
self.labe_6 = QtWidgets.QLabel(self.groupBox_bk_pic)
self.labe_6.setGeometry(QtCore.QRect(180, 110, 36, 12))
self.labe_6.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.labe_6.setObjectName("labe_6")
self.label_bk_picture = QtWidgets.QLabel(self.groupBox_bk_pic)
self.label_bk_picture.setGeometry(QtCore.QRect(10, 20, 151, 151))
self.label_bk_picture.setFrameShape(QtWidgets.QFrame.Box)
self.label_bk_picture.setAlignment(QtCore.Qt.AlignCenter)
self.label_bk_picture.setObjectName("label_bk_picture")
self.pushButton_addbkpic = QtWidgets.QPushButton(self.groupBox_bk_pic)
self.pushButton_addbkpic.setGeometry(QtCore.QRect(170, 20, 51, 31))
self.pushButton_addbkpic.setObjectName("pushButton_addbkpic")
self.pushButton_delbkpic = QtWidgets.QPushButton(self.groupBox_bk_pic)
self.pushButton_delbkpic.setGeometry(QtCore.QRect(230, 20, 51, 31))
self.pushButton_delbkpic.setObjectName("pushButton_delbkpic")
self.comboBox_bk_mode = QtWidgets.QComboBox(self.groupBox_bk_pic)
self.comboBox_bk_mode.setGeometry(QtCore.QRect(230, 60, 51, 30))
self.comboBox_bk_mode.setObjectName("comboBox_bk_mode")
self.labe_10 = QtWidgets.QLabel(self.groupBox_bk_pic)
self.labe_10.setGeometry(QtCore.QRect(190, 70, 24, 12))
self.labe_10.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.labe_10.setObjectName("labe_10")
self.groupBox_3 = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_3.setGeometry(QtCore.QRect(10, 10, 251, 241))
self.groupBox_3.setObjectName("groupBox_3")
self.plainTextEdit = QtWidgets.QPlainTextEdit(self.groupBox_3)
self.plainTextEdit.setGeometry(QtCore.QRect(10, 20, 231, 171))
self.plainTextEdit.setObjectName("plainTextEdit")
self.pushButton_openinfo = QtWidgets.QPushButton(self.groupBox_3)
self.pushButton_openinfo.setGeometry(QtCore.QRect(10, 200, 71, 31))
self.pushButton_openinfo.setObjectName("pushButton_openinfo")
self.pushButton_saveinfo = QtWidgets.QPushButton(self.groupBox_3)
self.pushButton_saveinfo.setGeometry(QtCore.QRect(90, 200, 71, 31))
self.pushButton_saveinfo.setObjectName("pushButton_saveinfo")
self.checkBox_autoline = QtWidgets.QCheckBox(self.groupBox_3)
self.checkBox_autoline.setGeometry(QtCore.QRect(170, 208, 71, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.checkBox_autoline.sizePoli