我正在尝试使用对话框向用户报告错误。如果有一个错误似乎有效,但是当有多个错误时,它会在下一个错误关闭时重新打开而不是崩溃。
def errordialog(self, errormessage):
self.errordialog = QMessageBox()
self.errordialog.addButton("OK", 0)
self.errordialog.setText(errormessage)
self.errordialog.exec()
这是主程序
def validate_data(data, regex):
if re.match(regex, data, re.VERBOSE):
error = False
else:
errormessage = "ERROR"
print("0")
self.errordialog(errormessage)
print("1")
self.errordialog.accept() # I added this in while trying to solve the issue
print("2")
error = True
return error
data = supplierid
regex = "[A-Z]$"
error = validate_data(data, regex)
print("3")
data = suppliername
regex = ".(1,50)$"
error = validate_data(data, regex)
print("4")
打印0,1,2,3,0然后崩溃
错误消息为object QMessageBox is not callable
答案 0 :(得分:1)
调用这行代码self.errordialog
后,进入errordialog函数。但是,在errordialog函数中,您重新定义了{{1}},因此它是类QMessageBox而不是类函数,所以当它第二次通过验证时,您尝试调用QMessageBox,这不起作用。
只需更改功能或变量名称即可解决此问题。