2013-08-19 1 views
0

Я хочу использовать QValidator и его подклассы (QRegExpValidator, QIntValidator) в QCoreApplication, но получить следующую ошибку: «QValidator: Нет такого файла или каталога» Если я добавлю в .pro-файл следующую строку: «QT + = gui» - все работает нормально, но это не решение для меня.Использование QValidator в QCoreApplication

Есть ли какой-либо метод использования QValidator в QCoreApplications?

+0

напишите, зачем вам нужны валидаторы в приложении ядра qt. QValidator - это дизайн для работы с QLineEdit. –

+0

Я решил использовать QValidator для проверки аргументов программы. Smth вот так: if (validator.validate (QString (argv [1]), 0)! = QValidator :: Acceptable ... Для справки, если первый параметр - это IP-адрес, и я хочу проверить его правильность –

+0

, поэтому QValidator is для большой машины для вас (вам не требуется промежуточное состояние или информация о курсоре). 'QRegExp',' QString :: toInt', 'QString :: toDouble' должен выполнять задание (если вам нужна локализованная проверка, то соответствующие функции' QLocale' должно быть в порядке) –

ответ

1

Нет, это невозможно. QValidator является частью gui lib. Я полагаю, что разработчики Qt думали, что QValidator имеет смысл только с текстовыми входными классами Qt. Я снова проверил, что утверждение выше. Однако я просмотрел код, QValidator не зависит от каких-либо элементов gui. На первый взгляд кажется, что он довольно изолирован. Таким образом, вы можете использовать qvalidator.cpp и qvalidator.h из источников Qt в свои источники, сделать разумную сумму корректировки и интегрировать это в свой код. Возможно, я не скажу, что это будет легко.

+0

Я думал, что есть простой взлом, чтобы сделать это. В любом случае, благодарю Вас! –