所以我试图为用户输入创建一组验证,其中输入框必须输入一个输入并且是一个大于0的正整数。我在elif部分周围出现语法错误,有关如何格式化的任何帮助这正确有用
def MDConfirm_btn_clicked(self,MGStudent_drop):
##Max marks input
Max_marks=(self.MDMax_inp.text())
if len(str(Max_marks))==0: #check if length is the same as 0
Presence_error_open.show()#call presence error prompt if condtion is met
elif:
try:
Max_marks=int(self.MDMax_inp.text()) #take input from maximim marks entry
except ValueError:#if python detects error in value type flag error
Char_error_open.show()
elif int((Max_marks)) <=0: #check is value is less than 0
Char_error_open.show()
else:
Max_marks=m1
答案 0 :(得分:0)
您可以尝试重组:
def MDConfirm_btn_clicked(self, MGStudent_drop):
Max_marks = self.MDMax_inp.text()
if not Max_marks:
Presence_error_open.show()
else:
try:
Max_marks = int(Max_marks)
if Max_marks < 0:
raise ValueError
except ValueError:
Char_error_open.show()
else:
Max_marks = m1
(注意:我假设Max_marks
应该小于零,而不是等于或小于零,正如你现在所拥有的那样。)
但是,我认为在行编辑上set a validator会更好,因为这样可以防止首先输入错误的值。内置的QIntValidator似乎完全符合您的要求。