QLineEdit
에 QDoubleValidator
을 사용하고 있습니다. 응용 프로그램 로캘 (QtCreator에서 설정)은 QLocale::German
입니다.QDoubleValidator는 여러 개의 소수점을 허용합니다.
이제 소수점 구분 기호로 도트 또는 쉼표를 사용하여 유효한 double을 입력하면 textedit에 쓰거나 문자열을 float로 변환해도 문제가 없습니다. 하지만 유효성 검사기를 사용하면 여러 개의 소수 구분 기호로 항목을 작성할 수 있습니다. 123.567,890
또는 ,,03.4...
과 같은 문자열은 유효성이 검사되지만 float로 변환 할 수 없습니다.
QDoubleValidator
에 실제 숫자 만 유효성을 검사하고 알파벳 문자가없는 문자열이 아니라고 말할 수있는 방법이 있습니까?
기본적으로 기본 유효 로케일 또는 독일어 로켈을 사용하여 부동 소수점으로 변환 될 수있는 문자열의 유효성 만 검사하는 유효성 검사기가 필요합니다.
왜 ['QDoubleSpinBox'] (http://doc.qt.io/qt-5/qdoublespinbox.html)를 사용하지 않습니까? 자동으로 시스템 로케일을 사용하며, 보지 않으려면 [위/아래 버튼 숨기기] (http://doc.qt.io/qt-5/qabstractspinbox.html#buttonSymbols-prop)를 사용할 수 있습니다 그들. –