如何在pyqt中限制QLineEdit中的用户输入

Rao*_*Rao 10 python pyqt4 qlineedit

我有一个QLineEdit,我想限制QLineEdit只接受整数.它应该像inputmask一样工作.但我不想使用inputmask,因为如果用户点击QLineEdit光标将位于鼠标被点击的位置.并且用户需要导航到0位置并键入他想要的前夕.

有没有替代品.

小智 23

你可以使用QValidator,它的工作方式如下:

#To allow only int
self.onlyInt = QIntValidator()
self.LineEdit.setValidator(self.onlyInt)
Run Code Online (Sandbox Code Playgroud)

  • 这是执行此操作的适当方法。使用验证器。 (2认同)

sco*_*lta 9

你可以使用异常处理来验证这个:

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

您还可以使用验证器来验证输入字符串.

  • 关于如何使用验证器的一个很好的例子是:http://snorf.net/blog/2014/08/09/using-qvalidator-in-pyqt4-to-validate-user-input/ (2认同)
  • @maurobio-链接更新:https://snorfalorpagus.net/blog/2014/08/09/validating-user-input-in-pyqt4-using-qvalidator (2认同)