qlineedit DoubleValidator从点开始
QLineEdit doubleValidator starting with point
i有一个带有qlineedit的UI,该UI仅在QDoubleValidator的帮助下接受float/double值。它仅在我输入类似于:0.234的领先数字时接受值。但是,我希望能够直接输入值,而无需像.234这样的领先数字。不幸的是,QDoubleValidator不接受指导点。有什么方法可以在验证者的帮助下对我的目标进行存档,还是我必须自己检查每个输入的角色?我在Windows10上使用QT 5.9.1。
QDoubleValidator* doubleValidator = new QDoubleValidator();
QLineEdit* lineEdit = new QLineEdit(frame);
lineEdit->setValidator(doubleValidator);
vbox->addWidget(lineEdit);
不幸的是, QDoubleValidator
非常有限,但是您可以使用 QRegExpValidator
用送纸条来获取想要的数字,具体取决于您期望的符号。
// non-scientific floating-point numbers
QRegExp rx("[-+]?[0-9]*\.?[0-9]+");
QRegExpValidator v(rx, 0);
QString s;
s = ".123";
v.validate(s, 0); // Returns Acceptable
这是可以扩展得多的,并允许您使用基本的正则表达知识将其抽象为任何条件。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 如何从头开始创建 avi 文件?
- 为什么 -mmacosx-version-min=10.10 不阻止使用标记为从 10.11 开始的函数?
- 自一周开始以来的秒数?
- 一旦双簧管录制开始,主 UI 线程就会被阻止
- GStreamer在开始任何播放之前进行搜索
- 使 std::fstream 写入文件末尾,但从头开始读取
- 如何以毫秒为单位获取开始时间和 now() 之间的毫秒差异(以 C++为单位?
- 哪个C++规范开始支持 std::vector
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 如何在调试中通过传递引用开始
- 如何使用 picojson.h 在 c++ 中从头开始创建 json 对象
- 从特定键开始遍历地图
- 列表的有效性在插入后开始迭代器
- 尝试从头开始实现Leetcode的FizzBuzz多线程问题。收到"libc++abi.dylib: terminating"错误
- 试图修复一个错误,该错误不会让我开始编程其余部分
- 甚至在开始执行之前出现分段错误
- 为什么 Glib::VariantBase::store 方法破坏了给定缓冲区的开始