2017-11-27 27 views
0

これらは2つの質問です(両方ともInputMaskによって解決することができますか?)PyQtは:QLinEdit入力のみ整数または専用文字列のためのマスクと長さ制限

  1. 私は16文字のみ
  2. にユーザーの入力を制限したいです
  3. '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

2番目の部分については、この質問を参照してください。 https://stackoverflow.com/questions/15829782/how-to-restrict-user-input-in-qlineedit-in-pyqt – APorter1031

答えて

1

は最初の質問を解決するために:

この

は、質問の第二の部分のための私のコード(動作しない)であります2番目のQIntValidator質問は、最大整数であるため、 2147483647に等しい最大値までしか働かない:2 ** 31-1、解決策は正規表現を使用することです:

rx = QRegExp("\d+") 
self.lineedit_15.setValidator(QRegExpValidator(rx)) 
関連する問題