Chỉ cho nhập số vào QlineEdit Trong Qt

Mình muốn chỉ cho nhập số vào QLineEdit thì phải làm như thế nào mong các bạn giúp. Cảm ơn

Nhập chỉ số là sao nhỉ @HungVo?

Ý em làm khi người dùng nhập vào QLineEdit thì chỉ được nhập số thôi, vì em đang làm chức năng nhập số điện thoại vào danh bạ ạ

1 Like

Làm theo hướng dẫn này nhé :smile:

QLineEdit::setValidator(),

myLineEdit->setValidator( new QIntValidator(0, 100, this) );

or

myLineEdit->setValidator( new QDoubleValidator(0, 100, 2, this) )

See: QIntValidator, QDoubleValidator, QLineEdit::setValidator

1 Like

Cái setValidator này hình như chỉ cho nhập 1 số giới hạn trong khoảng nào đó :frowning:
Ví dụ đặt cho nó khoảng từ 0 - 100, thì giả sử mình nhập 09343… thì nó chỉ nhận ngang 093 thôi thì phải :frowning:

Có lẽ tốt nhất nên subclass QLineEdit rồi viết thêm hàm setInput gì đó, rồi kiểm tra từng kí tự mà mình nhập vào có phải là số hay không.

P/s: À kiểu Int 4 byte thì chắc set cho nó giới hạn 10 số chắc cũng vô tư :stuck_out_tongue_closed_eyes: quên mất

1 Like

Bạn xem cái này thử xem: http://doc.qt.io/qt-4.8/qregexpvalidator.html
Mấy cái class này người ta viết sẵn ra dùng để validate, thì thường những rule cơ bản có hết ấy mà.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?