我有一个 QLineEdit
,希望它只接受整数。它应该像输入掩码一样工作。 但我不想使用 inputmask
,因为如果用户单击 QLineEdit
,光标将在鼠标单击的位置处。 用户需要导航到0位置并键入任何内容。
是否有此类功能的替代方法。
您可以使用QValidator。它的工作方式如下:
# from PyQt5.QtGui import QIntValidator
# from PyQt6.QtGui import QIntValidator
# allow only integers
onlyInt = QIntValidator()
onlyInt.setRange(0, 4)
lineEdit.setValidator(onlyInt)
您可以使用异常处理来进行验证:
number = self.ui.number_lineEdit.text()
try:
number = int(number)
except Exception:
QtGui.QMessageBox.about(self, 'Error','Input can only be a number')
pass
您还可以使用验证器来验证输入字符串。