我正在优化我编写的用于在计算机维修中心管理维修的程序,我正在寻找方法来优化代码并使代码更紧凑。我想知道是否有一种较短的方法来验证多个QLineEdit字段而没有十亿个if
和else
语句?
这是应该如何工作的:
有更简单的方法吗?这是我现在完成的方式:
def new_repair_validate_fields():
### LOGGING ###
logging.debug(str(datetime.datetime.now().replace(microsecond=0)) + ' ' + sys._getframe().f_code.co_name)
## DEFINE VARIABLE ###
valid = True
### NAAM ###
if ui.nieuwe_herstelling_tab_naam_textfield.text():
ui.nieuwe_herstelling_tab_naam_label.setStyleSheet('color: black')
else:
ui.nieuwe_herstelling_tab_naam_label.setStyleSheet('color: red')
valid = False
### STRAAT EN NUMMER ###
if ui.nieuwe_herstelling_tab_straatennummer_textfield.text():
ui.nieuwe_herstelling_tab_straatennummer_label.setStyleSheet('color: black')
else:
ui.nieuwe_herstelling_tab_straatennummer_label.setStyleSheet('color: red')
valid = False
### GEMEENTE ###
if ui.nieuwe_herstelling_tab_gemeente_textfield.text():
ui.nieuwe_herstelling_tab_gemeente_label.setStyleSheet('color: black')
else:
ui.nieuwe_herstelling_tab_gemeente_label.setStyleSheet('color: red')
valid = False
### POSTCODE ###
if ui.nieuwe_herstelling_tab_postcode_textfield.text():
ui.nieuwe_herstelling_tab_postcode_label.setStyleSheet('color: black')
else:
ui.nieuwe_herstelling_tab_postcode_label.setStyleSheet('color: red')
valid = False
### GSM AND TELEFOON ###
if ui.nieuwe_herstelling_tab_gsm_textfield.text() != '/..' or ui.nieuwe_herstelling_tab_telefoon_textfield.text() != '/..':
ui.nieuwe_herstelling_tab_gsm_label.setStyleSheet('color: black')
ui.nieuwe_herstelling_tab_telefoon_label.setStyleSheet('color: black')
else:
ui.nieuwe_herstelling_tab_gsm_label.setStyleSheet('color: red')
ui.nieuwe_herstelling_tab_telefoon_label.setStyleSheet('color: red')
valid = False
### TYPE ###
if ui.nieuwe_herstelling_tab_type_combobox.currentText() != 'Selecteer':
ui.nieuwe_herstelling_tab_type_combobox.setStyleSheet('color: black')
else:
ui.nieuwe_herstelling_tab_type_combobox.setStyleSheet('color: red')
valid = False
### PROBLEEM TEXT ###
if ui.nieuwe_herstelling_tab_probleemomschrijving_textfield.toPlainText():
ui.nieuwe_herstelling_tab_probleemomschrijving_label.setStyleSheet('color: black')
else:
ui.nieuwe_herstelling_tab_probleemomschrijving_label.setStyleSheet('color: red')
valid = False
### BTW ###
if validate_btwnummer(ui.nieuwe_herstelling_tab_btw_textfield.text()):
ui.nieuwe_herstelling_tab_btw_label.setStyleSheet('color: black')
else:
ui.nieuwe_herstelling_tab_btw_label.setStyleSheet('color: red')
valid = False
if valid:
return True
else:
return False
还可以摆脱valid
变量吗?