我一直在尝试运行此功能,并且总是会出现此错误,告诉我未定义'receiver',而'receiver'实际上是用户输入的单词,并传递给此窗口,我正在尝试运行此功能。我做错什么了?为第一个窗口简化的代码:
from PyQt5 import QtCore, QtGui, QtWidgets
from SecondWindow import Ui_SecondWindow
class Ui_FristWindow(object):
def setupUi(self, FirstWindow):
MainWindow.resize(900, 700)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.centralwidget = QtWidgets.QWidget(FirstWindow)
self.lineEdit1 = QtWidgets.QLineEdit(self.centralwidget)
self.horizontalLayout.addWidget(self.lineEdit1)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.clicked.connect(self.openwindow)
self.horizontalLayout.addWidget(self.pushButton)
def openwindow(self):
self.window = QtWidgets.QMainWindow()
self.receiver = self.lineEdit1.text()
self.ui = Ui_SecondWindow(self.receiver)
self.ui.setupUi(self.window)
self.window.show()
简化代码,仅保留第二个窗口的重要部分
import sqlite3
from PyQt5 import QtCore, QtGui, QtWidgets
conn = sqlite3.connect('storage.db')
cursor = conn.cursor()
class Ui_SecondWindow(object):
def __init__(self, receiver): #This is where the word got passed on from the first window
self.receiver = receiver
print (self.receiver)
def select_db(self):
cursor.execute(('SELECT * FROM mytable WHERE Dragons = ?', self.receiver))
data = cursor.fetchall()
for row in data:
row[0] = data2
data2 = str(data2)
print(len(data2))
self.label_5.setText(str(data2))
window2 = Ui_WordWindow(receiver) # This is where it tells me that receiver is not defined while i already passed the word on receiver in __init__ func
window2.select_db()
cursor.close()
conn.close
这是您的程序,直到出现错误为止: