原来的代码可以正常切割字符串是因为QInputDialog.getText()返回的是一个元组,其中包含用户输入的字符串和一个布尔值(ok表示用户是否确认输入)。而通过自定义的customized_getText函数,您可能只返回了用户输入的字符串,没有返回布尔值ok,从而导致后续的切割操作出现错误。为了解决这个问题,你可以修改customized_getText函数,使其返回用户输入的字符串和布尔值ok,如下所示:
def customized_getText(self, title, label, x, y):
input, ok = QInputDialog.getText(self, title, label, QLineEdit.Normal, '', Qt.WindowFlags(), x, y)
return input, ok
# 调用customized_getText函数
input, ok = main_window.customized_getText('录入', '请录入规则。回车持续录入,录N退出:', x, y)
# 判断用户是否确认输入
if input.upper() == 'N' or not ok:
break
# 对字符串进行切割
exclude_rows = input.split(',')
for row in exclude_rows:
# 进行处理操作
在修正后的代码中,我们将customized_getText函数中的返回值设置为input和ok,并在主程序中进行判断,如果用户输入的是"N"或者未确认输入(ok为False),则跳出循环。否则,继续对输入的字符串进行切割并进行处理操作。希望这个解决方案对您有帮助。如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |