'receiver'确实有定义,但没有定义

问题描述 投票:0回答:1

我一直在尝试运行此功能,并且总是会出现此错误,告诉我未定义'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
python sqlite pyqt
1个回答
1
投票

这是您的程序,直到出现错误为止:

© www.soinside.com 2019 - 2024. All rights reserved.