我在設定繼承時遇到問題。我想在單擊generator時激活該功能,pushButton_3但標題中不斷出現錯誤。我的完整代碼:
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow
import pyqrcode
import png
from pyqrcode import QRCode
class MainWindow(QMainWindow):
def setupUi(self):
self.setObjectName("QR Generator")
self.setFixedSize(591, 381)
self.pushButton = QtWidgets.QPushButton(self)
self.pushButton.setGeometry(QtCore.QRect(340, 320, 241, 51))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self)
self.pushButton_2.setGeometry(QtCore.QRect(340, 260, 241, 51))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.pushButton_2.setFont(font)
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self)
self.pushButton_3.setGeometry(QtCore.QRect(10, 200, 321, 51))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.pushButton_3.setFont(font)
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_3.clicked.connect(self.generate())
self.pushButton_4 = QtWidgets.QPushButton(self)
self.pushButton_4.setGeometry(QtCore.QRect(10, 260, 321, 51))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.pushButton_4.setFont(font)
self.pushButton_4.setObjectName("pushButton_4")
self.graphicsView = QtWidgets.QGraphicsView(self)
self.graphicsView.setGeometry(QtCore.QRect(340, 10, 241, 241))
self.graphicsView.setObjectName("graphicsView")
self.textEdit = QtWidgets.QTextEdit(self)
self.textEdit.setGeometry(QtCore.QRect(10, 150, 321, 41))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold")
font.setBold(True)
font.setWeight(75)
self.textEdit.setFont(font)
self.textEdit.setObjectName("textEdit")
self.label = QtWidgets.QLabel(self)
self.label.setGeometry(QtCore.QRect(40, 20, 261, 61))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.textEdit_2 = QtWidgets.QTextEdit(self)
self.textEdit_2.setGeometry(QtCore.QRect(10, 100, 321, 41))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold")
font.setBold(True)
font.setWeight(75)
self.textEdit_2.setFont(font)
self.textEdit_2.setObjectName("textEdit_2")
self.retranslateUi(self)
QtCore.QMetaObject.connectSlotsByName(self)
def retranslateUi(self):
_translate = QtCore.QCoreApplication.translate
self.setWindowTitle(_translate("Dialog", "QR Code Generator"))
self.pushButton.setText(_translate("Dialog", "Exit"))
self.pushButton_2.setText(_translate("Dialog", "Save As Picture"))
self.pushButton_3.setText(_translate("Dialog", "Generate QR Code"))
self.pushButton_4.setText(_translate("Dialog", "Clear"))
self.textEdit.setPlaceholderText(_translate("Dialog", "Paste link here"))
self.label.setText(_translate("Dialog", "QR Code Generator"))
self.textEdit_2.setPlaceholderText(_translate("Dialog", "Give a name to the QR"))
def save1(self):
pass
def generate(self):
link = self.textEdit_2.text()
qrname = self.textEdit.text()
qrcode = pyqrcode.create(link)
qrcode.png(f"{qrname}.png", scale = 6)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
self = QtWidgets.QDialog()
ui = MainWindow()
ui.setupUi()
self.show()
sys.exit(app.exec_())
uj5u.com熱心網友回復:
self.pushButton_3.clicked.connect(self.generate()) 在這一行中,您沒有連接generate函式,而是通過添加()函式名稱來呼叫它,因此將其更改為self.pushButton_3.clicked.connect(self.generate)并且self.generate應該接受一個引數x,即按鈕的回呼事件
因此,要么更改接受一個引數的定義,self.generate要么制作一個接受一個引數并self.generate通過放置此行來呼叫的 lambda 函式self.pushButton_3.clicked.connect(lambda x: self.generate())
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/438283.html
上一篇:這種類結構可以更好地表示嗎?
下一篇:鏈表上的無限回圈
