限制小数范围,乍看起来很简单,不是有QDoubleValidator吗?一用,没效果,我Qt版本5.6,其他版本什么情况就不知道了。。
百度,解决方法:继承QDoubleValidator,重写validate方法。
在Stackoverflow上看到的demo:
class MyDoubleValidator : public QDoubleValidator
{
public:
MyDoubleValidator(double bottom, double top, int decimals, QObject *parent = 0)
:QDoubleValidator( bottom, top, decimals, parent) {};
QValidator::State validate(QString &input, int &pos) const
{
/*
* Original Qt Documentation:
* ---------
* QDoubleValidator::validate()
* Returns Intermediate if input contains a double that is
&nbs

在Qt中使用QDoubleValidator限制QLineEdit小数输入范围时,发现5.6版本该验证器无效。通过继承QDoubleValidator并重写validate方法可以解决,但会遇到下限限制和小数位数限制问题。通过参考StackOverflow和CSDN上的解决方案,可以实现上下限限制及清空输入的功能,但存在如设置下限为0.5时,[0.51-1)区间无法输入的问题。这是一个针对0.5整数倍需求的不完美方案,期待优化。

1万+

被折叠的 条评论
为什么被折叠?



