2013-04-05 12 views
6

Mam QLineEdit i chcę ograniczyć QLineEdit, aby zaakceptować tylko liczby całkowite. Powinno działać jak maska ​​wejściowa. Ale nie chcę używać inputmask, ponieważ jeśli użytkownik kliknie na QLineEdit kursor znajdzie się w miejscu, w którym kliknięto myszą. i użytkownik musi przejść do pozycji 0 i wpisać, co chce.Jak ograniczyć dane wejściowe użytkownika w QLineEdit w pyqt

Czy istnieje alternatywa do tego.

Odpowiedz

7

można użyć obsługi wyjątków walidacji to:

number = self.ui.number_lineEdit.text() 
try: 
    number = int(number) 
except Exception: 
    QtGui.QMessageBox.about(self, 'Error','Input can only be a number') 
    pass 

można również używać do sprawdzania poprawności validators ciągów wejściowych.

+0

Słyszałem o 'validators', ale nie mieli znaleźć prawidłową przykład jak ustawić go na' QLineEdit'. Oznacza to, że spróbuję twojego approch. Myślę, że Validators są dobrym rozwiązaniem dla profesjonalnego podejścia. – Rao

+0

spróbuj uczyć się na tym pytaniu tutaj http://stackoverflow.com/questions/5770441/checking-qvalidators-state – scottydelta

+2

Dobrym przykładem użycia walidatorów jest: http://snorf.net/blog/2014/08/ 09/using-qvalidator-in-pyqt4-to-validate-user-input/ – maurobio

3

można użyć QValidator to działa tak:

#To allow only int 
self.onlyInt = QIntValidator() 
self.LineEdit.setValidator(self.onlyInt) 
Powiązane problemy