QLineEdit限制经纬度输入范围和整形输入范围,double和int采用两种不同的方式进行。

int输入范围限制,重写QIntValidator

class MyIntValidator : public QIntValidator
{Q_OBJECT
public:explicit MyIntValidator(QObject * parent = 0) :QIntValidator(parent){}MyIntValidator(int bottom, int top, QObject * parent) :QIntValidator(bottom, top, parent){}virtual void setRange(int bottom, int top){QIntValidator::setRange(bottom, top);}~MyIntValidator(){}virtual State validate(QString &s, int &n) const{return QIntValidator::validate(s, n);}virtual void fixup(QString &s) const{//s = QString("%1").arg(bottom());s = QString("");}
};

double输入限制

class MyDoubleValidator : public QDoubleValidator
{Q_OBJECT
public:explicit MyDoubleValidator(QObject * parent = 0) :QDoubleValidator(parent){}MyDoubleValidator(double bottom, double top,int decimals, QObject * parent) :QDoubleValidator(bottom, top, decimals, parent){}virtual void setRange(double bottom, double top, int decimals){QDoubleValidator::setRange(bottom, top, decimals);}~MyDoubleValidator(){}virtual State validate(QString &str, int &n) const{if (str.isEmpty()){return QValidator::Intermediate;}int a = 1;bool cOK = false;double val = str.toDouble(&cOK);if (!cOK){return QValidator::Invalid;}int dotPos = str.indexOf(".");if (dotPos > 0){if (str.right(str.length() - dotPos - 1).length() > decimals()){return QValidator::Invalid;}}if (val< top() && val > bottom()){return QValidator::Acceptable;}return QValidator::Invalid;}virtual void fixup(QString &s) const{//s = QString("%1").arg(bottom());s = QString("");}
};

使用方法:

ui.starLngEdit->setValidator(new MyDoubleValidator(-180.0, 180.0,8, ui.starLngEdit));//8代表小数位数
ui.WidthEdit->setValidator(new MyIntValidator(1, 1000, ui.WidthEdit));

QLineEdit限制数字输入范围相关推荐

  1. QLineEdit设置浮点型数字输入问题

    Qt中QLineEdit如果想设置整数,可以使用QIntValidtor:例如ui.k1Edit->setValidtor(new QIntValidtor(10,100,this)); 但不支 ...

  2. Python Qt GUI设计:QLineEdit和QTextEdit文本框类(基础篇—13)

    目录 1.QLineEdit文本框类 2.QTextEdit文本框类 QLineEdit和QTextEdit都是文本框类,QLineEdit类是单行文本框控件,可以输入单行字符串.QTextEdit类 ...

  3. 【QT】Qt正则表达式的使用:使用QRegExp来限制QLineEdit的输入格式

    QLineEdit中使用QRegExp来限制输入格式,下面以IP输入框为例 QLineEdit *lineEditIP = new QLineEdit("192.168.147.200&qu ...

  4. qlineedit文本改变时_行文本编辑框QLineEdit及自动补全

    导读 行文本输入框在用于界面的文本输入,在WEB登录表单中应用广泛.一般行文本编辑框可定制性较高,既可以当作密码输入框,又可以作为文本过滤器.QLineEdit本身使用方法也很简单,无需过多的设置就能 ...

  5. Qt中的QLineEdit、QTextEdit、QPlainTextEdit

    文章目录 1 Qt中的文本编辑组件 2 QLineEdit组件 2.1 QLineEdit组件简介 2.2 QLineEdit常用方法 1 Qt中的文本编辑组件 Qt中支持3种常用的文本编辑组件: Q ...

  6. QT中实现QLineEdit变成圆角以及QCombox大半空白,小部分下拉框样式

    在QT中QSS的主要功能是使界面的表现与界面的元素分离,使得设计皮肤与界面控件分离的软件成为可能. 我现在用的是在UI中直接设置样式表,也可以自己代码设置. 第一步: 在UI界面选择自己想设置的空间选 ...

  7. QByteArray怎么转化为QString类型,并且在QLineEdit上面显示出来

    //存文件名字QByteArray temp_filename;for (int i =128;i<257;){temp_filename.append(inbuf[i]);i+=4;}QStr ...

  8. 【Qt开发】常用控件--QLineEdit

    QLineEdit是单行文本编辑控件.比如用户名,密码等输入框可以使用该控件. 所属头文件<QLineEdit> 常用方法 1.void setText(const QString &am ...

  9. qt之键盘的设计及QlineEdit内容读取

    第一阶段----找到syszuxpinyin源码 与大部分人一样,碰到一个问题不会解决,先问一下百度大神怎么看,网上搜QT软键盘,有各种各样的解决方法,有些我也下载运行了,不是很好用,有些还需要钱,对 ...

最新文章

  1. 人生致命的8个经典问题[转]
  2. CCF NOI1150 确定进制
  3. 云炬随笔20211012(2)
  4. 【学术相关】研究生通常都有怎样的作息时间呢?
  5. java字符串的运用代码_java – 如何使用mockito模拟一个字符串?
  6. 机器学习中的常用概率分布
  7. sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
  8. ASP.NET Session的七点认识(转)
  9. MySQL性能指标及计算方法
  10. 10倍,BoostKit鲲鹏全局缓存3大创新技术助力Ceph性能提升
  11. 计算机技能高考带什么文具,高考必备——21条考场抓分细节
  12. 产品需求分析神器:KANO模型分析法
  13. React官方状态管理库—— Recoil
  14. Linux—添加开机启动
  15. 亲测-分享最新微信付费进群收费进群系统源码-附带搭建教
  16. / 和 /* 和 /** 的区别
  17. 通过azure学生认证拿到一年服务器使用权
  18. IMX6ULL系列学习记录-sii902x移植篇
  19. 网络编程(3)-----------Javaweb
  20. String系列:Java的String类一(String)

热门文章

  1. html css制作简单优惠卷
  2. 编辑商品按钮显示商品对应数据
  3. 学校的计算机是作文,未来的电脑学校作文
  4. history路由下,Whitelabel Error Page错误
  5. QT---实现舒尔特方格(零基础入门)
  6. 联想M490原装Win8系统改Win7系统的血泪史
  7. 百度地图渲染wkt格式网格数据
  8. jcyzoj1505: 原地tp
  9. matlab 分段函数 反余弦
  10. 代码测试,调试与优化小结