gpt4 book ai didi

python - 如何在 PyQt5 中重新打开对话框

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:50 24 4
gpt4 key购买 nike

我正在尝试使用对话框来向用户报告错误。如果有一个错误,它似乎可以工作,但如果有多个错误,它在因下一个错误而关闭时不会重新打开,而是会崩溃。

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

最佳答案

调用这行代码self.errordialog(errormessage)后,您将进入errordialog函数。但是,在 errordialog 函数内部,您重新定义了 self.errordialog ,使其属于类 QMessageBox 而不是类函数,因此当它第二次进行验证时,您尝试调用 QMessageBox,这是行不通的。

只需更改函数或变量名称即可解决此问题。

关于python - 如何在 PyQt5 中重新打开对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36314667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com