Judul : Mengatur QLineEdit hanya menerima Integer
link : Mengatur QLineEdit hanya menerima Integer
Mengatur QLineEdit hanya menerima Integer
Saya ingin berbagi cara bagaimananya membuat QLineEdit hanya menerima masukan berupa angka(int). Ada beberapa cara untuk membuatnya:
MyClass:MyClass(){
....
QLineEdit *edit = new QLineEdit(parent);
//metode 1, menggunakan QIntValidator kekurangannya adalah adanya batasan digit, mampu menerima sampai 10 digit.
edit->setValidator(new QValidator(parent));
//metode 2 dengan QIntValidator membuat jangka tertentu.
edit->setValidator(new QValidator(int nilaiminimum, int nilaimaximum, parent));
//metode 3
edit->setInputMask("999999999999;#");
Angka 9 berarti bisa menerima angka 0-9;
jumlah angka 9 berarti jumlah digit yang bisa diterima;
# adalah karakter topeng yang ditampilkan;
MyClass:MyClass(){
....
QLineEdit *edit = new QLineEdit(parent);
//metode 1, menggunakan QIntValidator kekurangannya adalah adanya batasan digit, mampu menerima sampai 10 digit.
edit->setValidator(new QValidator(parent));
//metode 2 dengan QIntValidator membuat jangka tertentu.
edit->setValidator(new QValidator(int nilaiminimum, int nilaimaximum, parent));
//metode 3
edit->setInputMask("999999999999;#");
Angka 9 berarti bisa menerima angka 0-9;
jumlah angka 9 berarti jumlah digit yang bisa diterima;
# adalah karakter topeng yang ditampilkan;
kekurangan metode ini adalah QLineEdit sudah terisi dengan topeng(Mask) dan jumlah digit yang dibatasi.
//metode 4, metode ini tidak ada batasan digit cocok untuk menerima masukkan bilangan yang panjang, contohnya no hp, no kartu identitas, dll
myClass::Myclass(){
...
QLineEdit *edit = new QLineEdit(parent);
connect(edit,SIGNAL(textChanged(QString),this,SLOT(onTextChanged(QString);
...
}
void MyClass::onTextChanged(const QString &_string){
QLineEdit *edit = qobject_cast<QLineEdit*>(sender());
//cek int, lebih enak ini daripada menggunakan QValidator atau inpputmask
QStringList list = _string.split("");
//metode 4, metode ini tidak ada batasan digit cocok untuk menerima masukkan bilangan yang panjang, contohnya no hp, no kartu identitas, dll
myClass::Myclass(){
...
QLineEdit *edit = new QLineEdit(parent);
connect(edit,SIGNAL(textChanged(QString),this,SLOT(onTextChanged(QString);
...
}
void MyClass::onTextChanged(const QString &_string){
QLineEdit *edit = qobject_cast<QLineEdit*>(sender());
//cek int, lebih enak ini daripada menggunakan QValidator atau inpputmask
QStringList list = _string.split("");
bool ok;
//string pertama dan terakhir adalah string kosong
for (int i=1;i<list.size()-1;i++){
list.at(i).toInt(&ok);
if(!ok)
//jika bukan angka langsung dihapus
//string pertama dan terakhir adalah string kosong
for (int i=1;i<list.size()-1;i++){
list.at(i).toInt(&ok);
if(!ok)
//jika bukan angka langsung dihapus
edit->backspace();
}
}
}
Catatan seorang pembelajar, jika ada salah mohon dikoreksi.
Catatan seorang pembelajar, jika ada salah mohon dikoreksi.
Demikianlah Artikel Mengatur QLineEdit hanya menerima Integer
Sekian Mengatur QLineEdit hanya menerima Integer, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sekian postingankali ini.