- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目中有一个 QLineEdit。我想在 lineEdit 上使用 QValidation。
#Create lineEdit
itemValue = QtWidgets.QLineEdit()
#Create валидатор
objValidator = QtGui.QDoubleValidator(self)
#setup range
objValidator.setRange(-10.0, 100.0, 5)
#lineEdit with validation
itemValue.setValidator(objValidator)
但效果不佳。我可以输入我想要的内容,符号除外。范围不起作用!我可以输入 100500 或 -100500,但我希望用户只能输入范围内的数字。
我应该如何使用范围?我需要帮助:)
谢谢你们的帮助,伙计们!
最佳答案
默认情况下,验证器不会阻止输入超出范围的值,如果输入的值为Invalid or Intermediate,它也不会阻止用户离开行编辑。 .
但是,它确实让您有机会以编程方式拒绝输入,因为只要当前值 Not Acceptable ,行编辑就不会发出其 editingFinished。或 returnPressed信号及其 hasAcceptableInput方法将返回 False
。此外,如果将验证器子类化,则可以重新实现它的 fixup方法来控制输入的值。
但是,正如已经建议的那样,更好/更简单的解决方案是使用 QDoubleSpinBox
,因为它会自动清理输入并提供更加用户友好的界面。
关于python - PyQt QLineEdit 与 QValidator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22407883/
我有一个 Qt 小部件,它应该只接受一个十六进制字符串作为输入。将输入字符限制为 [0-9A-Fa-f] 非常简单,但我想让它在“字节”之间显示一个分隔符,例如,如果分隔符是空格,然后用户键入 001
首先,抱歉我的英语不好。 我正在尝试从用户那里获取 IP。我正在使用 QRegExpValidator 检查用户输入。验证器成功地阻止了不需要的字符。但我想知道当用户点击按钮时它是一个正确的 IP。当
我目前正在使用一种相当残酷的方法来获取 QValidator 可以轻松提供的内容。在这个小部件上找到一个简单的信息是相当困难的。下面的代码从另一篇文章复制/粘贴(经过一些小的编辑后)。它创建了一个带有
我正在尝试使用 QValidator 后代(实际上是在 PyQt5 中,但这应该无关紧要)来验证一系列行编辑。 一小段摘录是: class IPv4(QWidget): def __init_
我很好奇是否有人知道通过将其重置为零来删除 QValidator 是否会泄漏内存。 QT Documentation提到验证器被“移除”,但这是否也意味着它被删除了? 我的意思的一个例子......
示例代码: QDoubleValidator *validator = new QDoubleValidator(); myInputLineEdit->setValidator(validator)
我的项目中有一个 QLineEdit。我想在 lineEdit 上使用 QValidation。 #Create lineEdit itemValue = QtWidgets.QLineEdit()
我的项目中有一个 QLineEdit。我想在 lineEdit 上使用 QValidation。 #Create lineEdit itemValue = QtWidgets.QLineEdit()
在将可编辑的 QCombobox 输入添加到 QCombobox 之前,我尝试验证它是否是目录。 from PySide import QtGui, QtCore class DirValidator
我正在尝试开发一个使用 Qt 的应用程序。我试图让应用程序同时使用 PySide 和 PyQt4。除了我的自定义 QtGui.QValidator 类之外,我没有遇到任何重大兼容性问题: import
我想要一个接受 ip 地址的行编辑。如果我将输入掩码作为: ui->lineEdit->setInputMask("000.000.000.000"); 它接受大于 255 的值。如果我给出一个验证器
QLineEdit 有一个信号 QLineEdit::editingFinished 当用户完成编辑时发出,例如按回车键。但是,如果设置了验证器或输入掩码,则只有在输入有效时才会发出 editingF
我是一名优秀的程序员,十分优秀!