2014-12-04 4 views
0

Я хочу, чтобы QLineEdit принимал только числа без decimal.e.g, он должен принимать '456', но не '456.3434'.i.e. он не должен допускать десятичные значения. Может кто-нибудь дать некоторые указатели, как я могу это сделать.QLineEdit без десятичной точки

Я попытался использовать QIntValidator, но он по-прежнему позволяет вводить десятичную точку, и когда я конвертирую текст из QLinEdit, он возвращает ноль (как говорит в документации, если преобразование не выполняется, оно будет возвращать ноль).

Я также попытался использовать QRegExpValidator (QRegExp («[0-9]»), но он допускает только одно число. Максимального числа нет предела, как указать QRegExp с минимумом как 0 и максимум не определено, если QRegExpValidator является единственным способом добиться этого

Спасибо

ответ

4

Вы можете попробовать следующее: валидатор?

QLineEdit le; 
le.setValidator(new QRegExpValidator(QRegExp("[0-9]+"))); 
le.show(); 

UPDATE

Чтобы разрешить вход в экспоненциальной форме, вы можете попробовать это:

le.setValidator(new QRegExpValidator(QRegExp("[0-9]+e[0-9]+"))); 
+0

Большое спасибо @vahancho. Это сработало отлично. Что делать, если я хочу, чтобы оно принимало число в экспоненциальной форме, например, 1е10? – user1703942

+0

@ user1703942, см. Мой обновленный ответ. – vahancho

+0

Спасибо @Vahancho. Еще один вопрос: могу ли я установить предел максимум? Я хочу число от 0 до 2000000000 без экспоненциальной и десятичной точек. – user1703942

 Смежные вопросы

  • Нет связанных вопросов^_^