Sqlite PyQt QMessageBox表现得很滑稽

Sqlite PyQt QMessageBox表现得很滑稽,sqlite,pyqt,qmessagebox,Sqlite,Pyqt,Qmessagebox,我对QMessageBox的答案有点奇怪。此函数用于从SQLite数据库中删除行。删除前,弹出一个消息框,要求确认。查询执行得很好,除了总是删除,不管我回答是还是否 代码如下: def deleteFromDB(self): name = (str(self.ui.searchName.text()).upper()) if name: with con: cur = con.cursor() cur.execute('SELECT nam

我对QMessageBox的答案有点奇怪。此函数用于从SQLite数据库中删除行。删除前,弹出一个消息框,要求确认。查询执行得很好,除了总是删除,不管我回答是还是否

代码如下:

def deleteFromDB(self):
  name = (str(self.ui.searchName.text()).upper())
    if name:
      with con:
        cur = con.cursor()
        cur.execute('SELECT name FROM cases WHERE name =?',[name])
        tempname = str(cur.fetchone())
        if len(tempname) != 4 :
            reply = QtGui.QMessageBox.question(self, 'Removal',
                    "Are you sure ", QtGui.QMessageBox.Yes |
                     QtGui.QMessageBox.No, QtGui.QMessageBox.No)
                 if reply == QtGui.QMessageBox.Yes:
                     cur.execute('DELETE FROM cases where name =?',[name])

重要的一点似乎对我很好(QMessageBox.question返回正确的值),这也让我感到困惑。如果我把print(reply)放在那里,它会打印YES和NO对应的值(16384表示YES,65536表示NO)。感谢您的回复。上面示例中的缩进有点奇怪-倒数第二行应该与第9行处于相同的缩进级别。这只是一个粘贴问题还是你的问题?代码(稍微精简)在缩进修复的情况下按预期工作。这是一个粘贴问题,我的编辑器使用制表符,而不是空格进行缩进,所以我尝试“当场”修复它,我想这很糟糕。谢谢你们的回复,这段代码还可以,问题一定在其他地方。