2013-04-05 71 views
6

私はQLineEditを持っています。QLineEditには整数だけを受け入れるように制限したいと考えています。それはinputmaskのように動作するはずです。しかし、私はinputmaskを使用したくない。ユーザがQLineEditをクリックすると、マウスがクリックされた位置にカーソルが置かれるからだ。ユーザーは0の位置に移動し、彼が望む前夜を入力する必要があります。pyqtでQLineEditのユーザー入力を制限する方法

これに代わるものはありますか?

答えて

7

あなたはこれを検証するための例外処理を使用することができます:あなたはまた、入力文字列を検証するためにvalidatorsを使用することができます

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

あなたのようなそれが動作QValidatorを使用することができます
+0

私はvalidators' 'について聞いたが、' QLineEdit'にそれを設定する方法についての正しい例を見つける取得できませんでした。私はあなたの承認を試している間の平均。私は、バリデータはプロのアプローチのための良い選択肢だと思います。 – Rao

+0

ここでこの質問から学習してみてください。http://stackoverflow.com/questions/5770441/checking-qvalidators-state – scottydelta

+2

バリデーターの使い方の良い例がここにあります:http://snorf.net/blog/2014/08/ 09/using-qvalidator-in-pyqt4-to-validate-user-input/ – maurobio

3

#To allow only int 
self.onlyInt = QIntValidator() 
self.LineEdit.setValidator(self.onlyInt) 
関連する問題