Проверить ввод значений XML в Qt? - PullRequest
0 голосов
/ 27 апреля 2018

Я бы хотел избежать внедрения кода, поэтому я вложил в класс QValidator для проверки, если строка в QLineEdit не содержит «опасных» символов, например <,>, &, ",". Есть ли какой-нибудь более простой способ проверки ввода из данной строки? Спасибо за ваши советы.

myvalidator.h

extern class cXMLValueValidator : public QValidator{
  Q_OBJECT
public:
  explicit cXMLValueValidator(QObject *parent = 0);
  virtual State validate(QString & input, int & pos) const;
};

myvalidator.cpp

QValidator::State cXMLValueValidator::validate(QString & input, int & pos) const {
  if(input.isEmpty())
      return Acceptable;
    if(input.contains(QRegExp("[<>&\"\']")))
      return Invalid;
  return Acceptable;
}

Реализация:

QLineEdit* lineEdit = new QLineEdit();
lineEdit->setValidator(new cXMLValueValidator(lineEdit));

1 Ответ

0 голосов
/ 23 мая 2018

Хорошо. Нет другого способа проверить ввод XML, кроме вашего собственного QValidator.

...