Я бы хотел избежать внедрения кода, поэтому я вложил в класс 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));