Элегантный способ проверить данные из формы - PullRequest
0 голосов
/ 26 октября 2018

Я думаю, что это общий вопрос, однако в моем случае я работаю с PyQt5 и Python 3.

Я устанавливаю небольшое программное обеспечение, которое записывает данные с помощью измерительного устройства.Перед измерением я должен поместить некоторые данные, которые затем проверяются программным обеспечением на корректность, например, заполнено ли обязательное поле или является входным значением в допустимом диапазоне, или, например, у меня есть начальное значение A,конечное значение B и ширина шага W, поэтому я должен проверить, если W<=B-A

Мой вопрос: какой самый элегантный способ проверки формы?Я могу просто сделать это один за другим:

class Form:
    ...

    def check_form(self):
        if self.fieldA.text() == "":
            return False

        if not self.check_range(self.fieldB.text()):
            return False

        # Check fields one by one...
        ...

    def check_range(self, val):
        if val > self.max_val:
            return False
        else:
            return True

Но на самом деле, это не очень красиво, это повторяющийся код и много чего нужно написать и сложно поддерживать.Итак, мой вопрос, есть ли лучший способ?Одна идея, которая возникла, состояла в том, чтобы определить объект (возможно, dict), который содержит всю соответствующую информацию о форме, такую ​​как метка, значение по умолчанию, условия и т. Д. Я могу поместить эту форму в файл json, а затем просто загрузить егои даже создать форму, когда мне это нужно.Может быть, могут возникнуть некоторые препятствия, особенно мне нужно подумать, как обращаться с выпадающими списками, но я думаю, что это по крайней мере один подход.

В любом случае.100% кто-то еще боролся с этой проблемой до меня, так что, возможно, есть стандартный способ, как решить эту проблему элегантным способом.

1 Ответ

0 голосов
/ 26 октября 2018

Хорошей практикой в ​​UX является информирование пользователей об ожидании программного обеспечения, а не угадывание их, возможно, ввод неправильного значения, а затем информирование / дезинформация с загадочным сообщением об ошибке, которое они не понимают!

ВВ ситуации, которую вы описали здесь, четко обозначьте звездочку (*) рядом с меткой ввода, чтобы указать, что это обязательное поле.Возможно, программное обеспечение также должно придумать разумное значение по умолчанию.Также было бы неплохо использовать правильный виджет для решения конкретной проблемы, которую вы описали здесь.Поэтому вместо трех полей QLineEdit, которые принимают числовые входные данные в качестве текстовых полей, я бы просто использовал QSpinBox или QDoubleSpinBox, которые предназначены для запроса диапазона значений ограничения скважины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...