【发布时间】:2018-01-24 23:59:42
【问题描述】:
更新的代码片段: 我已经更新到“自我”。约定而不是全局,但仍然有唯一的值返回在类级别分配的空字符串,但是如果将其删除,则会引发错误。
class MainDialog(QWidget, qcDbWidget4.Ui_qcQueryWidget):
dbDir = ''
DbSelection = ''
dbPath = ''
TabSelection = ''
exportDir = ''
exportFileName = ''
def __init__(self, parent=None):
super(MainDialog, self).__init__(parent)
self.setupUi(self)
self.connect(self.dbDirSelect, SIGNAL("clicked()"), self.getDirFileNames)
self.connect(self.dbSelectButton, SIGNAL('clicked()'), self.selectDb)
self.connect(self.tabSelectButton, SIGNAL('clicked()'), self.selectTab)
self.connect(self.exportDirSelect, SIGNAL("clicked()"), self.getExportDir)
self.connect(self.exportButton, SIGNAL("clicked()"), self.setExportName)
self.connect(self.querySubmitButton, SIGNAL("clicked()"), self.setQueryParams)
self.connect(self.querySubmitButton, SIGNAL("clicked()"), self.dbQuery)
def getDirFileNames(self):
self.dbDir = str(QFileDialog.getExistingDirectory(self))
self.dbDirDisplay.setText(self.dbDir)
dbFileList = []
for root, dirs, files in os.walk(self.dbDir):
for file in files:
if file.endswith('.db'):
dbFileList.append(file)
self.dbSelection.addItems(dbFileList)
【问题讨论】:
-
哪一行返回错误?你还看过哪些其他答案?
-
不要使用
global。您可能正在寻找self.qcLevelCode。 -
它似乎来自:queryStatement = "SELECT * FROM " + qcTabSelect + " WHERE " + qcLevelSelect 朝向底部
-
我已经尝试了 self.qcLevelCode,但它返回了我设置为占位符的空字符串,而不是 qcLevelDbQuery 方法中的全局重新分配。 NameError: 名称 'qcLevelCode' 未定义
-
这是因为您需要将所有引用从
global x更改为self.x,包括qcLevelDbQuery。您的代码不包含全局变量。
标签: python variables global nameerror