2017-11-27 2 views
0

에 대한 다음은이 개 질문 (? 모두 InputMask에 의해 해결 될 수있다) 나는 16 자에만 에 사용자 입력을 제한 할PyQt는 : QLinEdit 입력 마스크 만 정수 또는 유일한 문자열 길이 제한

  1. 있습니다
  2. 'Age/ID'와 같은 필드에서 사용자 입력이 정수만 입력되도록하고 싶습니다. 사용자가 문자열을 입력하면 받아 들여서는 안되며 사용자가 먼저 문자열을 입력 할 수 없어야합니다.

실시간으로 첫 번째 부분을 어떻게 구현할 수 있는지, 즉 사용자가 최대 16 자까지 입력 할 수 있는지 모르겠지만 16 세 이상은 표시되지 않습니다. 반면

self.lineedit_15.setMaxLength(16) 

: 우리는 단지 최대 크기를 설정해야

self.onlyInt = QIntValidator() 
self.lineEdit_15.setValidator(self.onlyInt) 
det15=str(self.lineEdit_15.text()) 
list_val.append(det15) 
+0

http://pyqt.sourceforge.net/Docs/PyQt4/qlineedit.html#setMaxLength 첫 번째 부분을 "실시간"으로 구현하는 데 사용할 수 있습니다. – APorter1031

+0

두 번째 부분은이 질문을 참조하십시오. https://stackoverflow.com/questions/15829782/how-to-restrict-user-input-in-qlineedit-in-pyqt – APorter1031

답변

1

는 첫 번째 질문을 해결하기 :

질문의 두 번째 부분에 대한 내 코드 (작동하지 않는)입니다 두 번째 QIntValidator 질문은 최대 정수이므로 2147483647에 해당하는 최대 값까지만 작동합니다. 2 ** 31-1,이 솔루션은 정규 표현식을 사용합니다.

rx = QRegExp("\d+") 
self.lineedit_15.setValidator(QRegExpValidator(rx))