我现在的情况是,我接受用户的输入,然后做一些数学运算。。用户从组合框中选择一个项目,并在旁边的行编辑中输入一个数字。当他单击ok时,它返回(comboboxselectedvalue)+(lineeditvalue),它可以工作,大多数时候,我的问题是,当用户将lineedit留空时,它返回一个错误:
ValueError:基数为10的int()的文本无效:“”
cb1 = self.lineEdit.text()
zb1=self.comboBox.currentText()
az1 = int(cb1)
print(zb1+az1)
当没有输入任何内容并留空时,如何将行编辑的值设置为0?我有20行编辑和20个组合框
每当用户输入非数字的内容时,您的代码就会引发一个异常
最好的处理方法是验证条目(并用有效的东西预先填充它,比如
0
),这样他们就不能在框中用无效的东西单击OK但是如果你想在“引擎”代码中而不是在GUI中处理这个问题,你可以;它不会像用户体验那么好
听起来你想做的是把一个空盒子当作
0
。一个非空但非数字的条目呢?这是否也应被视为0
?如果是这样,这很容易;异常已经捕获了您想要捕获的内容,所以您只需要处理它另一方面,如果您想处理不同于空的非数字条目,则要复杂一些;这个异常将它们集中在一起,所以您需要一个
if
测试来代替这个异常,或者除了这个异常之外还需要一个if
测试。例如,如果希望非数字文本按当前方式中止程序,但空框表示0,则可以编写:或者,更简单地说:
相关问题 更多 >
编程相关推荐