【发布时间】:2013-03-27 14:58:16
【问题描述】:
我有一个QLineEdit,我想限制QLineEdit 只接受整数。它应该像输入掩码一样工作。但我不想使用inputmask,因为如果用户点击QLineEdit,光标将位于点击鼠标的位置。用户需要导航到 0 位置并输入他想要的内容。
这个有什么替代品吗?
【问题讨论】:
我有一个QLineEdit,我想限制QLineEdit 只接受整数。它应该像输入掩码一样工作。但我不想使用inputmask,因为如果用户点击QLineEdit,光标将位于点击鼠标的位置。用户需要导航到 0 位置并输入他想要的内容。
这个有什么替代品吗?
【问题讨论】:
您可以使用 QValidator,它的工作原理如下:
#To allow only int
self.onlyInt = QIntValidator()
self.LineEdit.setValidator(self.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
您也可以使用validators 来验证输入字符串。
【讨论】:
validators,但没有找到关于如何将其设置为QLineEdit 的正确示例。同时我会试试你的方法。我认为验证器是专业方法的不错选择。