Don't change the code generated by Qt Designer. Create another class,
which is inherited from the view and use the class created to fill it.pixmap : QPixmapThis characteristic contains a vegetation of the mark.bool QPixmap:save(const QString ' fileName, const char *format = nullptr, int quality = -1) constMaintains a vegetation in a file with a given name,
using the format of the image file and the quality coefficient.
If successful, returns true; otherwise returns false.import sys
import os
import qrcode
from PIL.ImageQt import ImageQt
from PIL import Image
from PIL.ImageQt import ImageQt
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, \
QPushButton, QStatusBar, QVBoxLayout, QHBoxLayout, QMainWindow
from PyQt5.QtGui import QFont, QPixmap, QImage
from PyQt5.QtCore import Qt
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(472, 502)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 40, 81, 21))
self.label.setObjectName("label")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(140, 40, 301, 20))
self.lineEdit.setObjectName("lineEdit")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(30, 80, 131, 23))
self.pushButton.setObjectName("pushButton")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(60, 120, 341, 321))
self.label_2.setText("")
self.label_2.setObjectName("label_2")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(170, 80, 131, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(310, 80, 131, 23))
self.pushButton_3.setObjectName("pushButton_3")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 472, 21))
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.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "ВВЕДИТЕ ТЕКСТ:"))
self.pushButton.setText(_translate("MainWindow", "ГЕНЕРАЦИЯ В QR КОД"))
self.pushButton_2.setText(_translate("MainWindow", "СОХРАНИТЬ QR CODE"))
self.pushButton_3.setText(_translate("MainWindow", "СБРОСИТЬ"))
class Window(QMainWindow, Ui_MainWindow):
def init(self):
super().init()
self.setupUi(self)
self.pushButton.clicked.connect(self.qrcode)
self.pushButton_3.clicked.connect(self.sbrosit_vse)
self.pushButton_2.clicked.connect(self.save_qr_code) # +++
def qrcode(self):
text = self.lineEdit.text()
img = qrcode.make(text)
qr = ImageQt(img)
pix = QPixmap.fromImage(qr)
self.label_2.setPixmap(pix)
def sbrosit_vse (self):
self.lineEdit.clear()
self.label_2.clear()
def save_qr_code(self):
current_dir = os.getcwd()
file_name = self.lineEdit.text()
if file_name:
path = os.path.join(current_dir, file_name + '.png')
self.label_2.pixmap().save(path)
if name == "main":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
w = Window()
w.show()
sys.exit(app.exec_())