python - '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
解决方案
这是您的程序直到错误点:
import sqlite3
from PyQt5 import QtCore, QtGui, QtWidgets
conn = sqlite3.connect('storage.db')
cursor = conn.cursor()
class Ui_SecondWindow(object):
# define a class
window2 = Ui_WordWindow(receiver)
您在此没有任何地方定义receiver
。类__init__
函数需要此值才能执行。该方法的局部变量receiver
在您提供之前没有值,并且这两个变量不是同一个对象。
推荐阅读
- dynamics-crm - 从 CRM 上传到 CosmosDB 时出现分区错误
- r - 根据 R 中的特定变量选择不同的条目
- wordpress - NGINX SSL 反向代理上的 WordPress Docker 无法按预期工作
- node.js - 找不到命令:ts-node-dev
- python - 如何将 Lat Lon 坐标的 Pandas DataFrame 转换为矩阵?(Python)
- java - Java 数组声明为 null
- swift - 如何使用 AVFoundation 在 Mac OS swift 中将速度或时间信息发送到 AVAudioUnitMIDIInstrument
- emacs - 如何配置 auto-dim-other-buffers 以使行号列变暗?
- asp.net-core - Host Asp.net Core Web Api locally
- java - 从列表中动态创建 Tablayout 中的选项卡?