Qt限制LineEdit的输入

2023-11-11

要限制输入需要用到Validator才能限制QLineEdit的输入,具体的两种表现方式。

第一种是利用正则表达式QRegExp;例如下图所示:

    QRegExp rx1 = QRegExp("[0-9.]+$");//正则表达式,限制数字与点的输入,
    QValidator *validator1 = new QRegExpValidator(rx1, ui.lineEdit_InputIP);
    ui.lineEdit_InputIP->setValidator(validator1);//验证输入

    
    QRegExp rx2("[0-9A-Za-z]{1,8}$");//正则表达式,限制数字与字母的输入,只能输入8位数字与字母的组合
    QValidator *validator2 = new QRegExpValidator(rx2, ui.lineEdit_InputSN);
    ui.lineEdit_InputSN->setValidator(validator2);

    
    QRegExp rx3 = QRegExp("[0-9]{1,3}$");//正则表达式,限制数字的输入,只能输入000-999
    QValidator *validator3 = new QRegExpValidator(rx3, ui.lineEdit_InputContinueNum);
    ui.lineEdit_InputContinueNum->setValidator(validator3);

 

    //限制增益的输入控件输入
    QRegExp rx5 = QRegExp("[0-3]");//正则表达式,限制数字0-5的输入,
    QValidator *validator5 = new QRegExpValidator(rx5, ui.lineEdit_Gain);
    ui.lineEdit_Gain->setValidator(validator5);

    //限制帧率的输入控件输入
    QRegExp rx6 = QRegExp("[0-9]{1,2}");//正则表达式,限制数字的输入,只能输入0-99
    QValidator *validator6 = new QRegExpValidator(rx6, ui.lineEdit_AcqFrameRate);
    ui.lineEdit_AcqFrameRate->setValidator(validator6); 

第二种是利用QIntValidator,QDoubleValidator等四个类来限制输入,例如

   ui.lineEdit_Exp->setValidator(new QIntValidator(1, 1000000, this));  //只能输入Int型的1-1000000,但是仍然能输入0000000
    //ui.lineEdit_Exp->setValidator(new QDoubleValidator(1.0, 1000000.0,2, this));
    //只能输入bouble型的1.0-1000000.0,但是仍然能输入0000000,小数点后只能有2位

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt限制LineEdit的输入 的相关文章

  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 当我尝试构建 Qt 4.7.1 静态库时,“找不到 -ljscore”

    我尝试从最新的源构建静态 Qt 库 但出现以下错误 usr bin ld cannot find ljscore collect2 ld returned 1 exit status 如何解决这个问题呢 这是 Qt 构建系统中自 4 7 0
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • Qt 创建者 + MITK (Linux)

    我正在尝试使用MITK 与 Qt Creator 我已经通过 ccmake 成功编译并使用了 VTK 和 ITK 我已经编译了 MITK超级建造模式 它下载 CTK VTK ITK 等 然后我就配置好了 我已经用 make 编译了 大约两个
  • GoQt 致命错误:QAbstractAnimation:没有这样的文件或目录

    我尝试编译 Qt 来开发桌面应用程序 我按照 Qt 网站上的官方 wiki 指南的说明进行操作 当我尝试go run示例文件夹中的示例 我收到错误 去运行 home pinkya rabbit workspace go1programs s
  • Qt - 如何粘合两个窗口并将它们移动在一起?

    就像qmmp Qt 音乐播放器ui设计一样 这两个或三个窗口实际上在同一个窗口中 因为只有一个dock图标 并且这些窗口可以一起移动并相互附着 我看了源码 好像有用QDockWidget 但我真的不知道如何获得它的细节 当您手动移动辅助窗口
  • 禁用 QML Slider 的鼠标滚轮

    我希望能够滚动Flickable使用鼠标滚轮 或触摸板上的两根手指 不改变Sliders它可能包含 示例代码及结果应用 import QtQuick 2 7 import QtQuick Window 2 2 import QtQuick
  • 在 Qt5 中,是否需要 Q_INVOKABLE 来从 QML 调用公共 QObject 函数?

    我刚刚意识到我可以调用暴露于 QML 的对象的几乎任何函数 现在我对 Q INVOKABLE 很好奇 Qt5docs http doc qt io qt 5 qtqml cppintegration exposecppattributes
  • 如何将图像显示为缩略图

    我有一个QTreeView显示硬盘驱动器和目录 我也有一个QListView显示图像文件如下 但我想将图像显示为缩略图 如下所示 My code mainWidget mainWidget QWidget parent QWidget pa
  • 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

    几天来我一直在尝试使用 Visual Studio 2013 构建 Qt 的静态版本 我就是不明白我做错了什么 System Windows 7 64 位 Visual Studio 2013 仍安装 Visual Studio 2012
  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • Qt 插槽是否与其他代码并行运行?

    在此函数示例中 void MyClass myFunction emit MySignal1 emit MySignal2 如果我有slot1倾听MySignal1 and slot2倾听MySignal2 1 Is slot1总是会在之前
  • Qml 模块未找到 CPP 类注册与新的 QML_ELEMENT r

    我尝试使用 Qt5 15 0 和新宏 QML ELEMENT 在 QML 中注册我的自定义 CPP 类 但找不到该模块 Qt Creater 帮助文件描述了 QML ELEMENT 的步骤 我也检查了 Qt 手册 但没有幸福的结局 http
  • 从 Qt4 中的文本文件中逐字读取

    我想在 Qt4 中逐字读取一个文本文件 说实话我对它很陌生 我想在另一个文件中每行一个字写入 我可以在 C 中做到这一点 没有任何问题 但是当我尝试在 Qt4 中使用 ifstream 和 ofstream 时 我遇到了错误 这是我的 Qt
  • Qt 是否已经有了自己的 new 和 delete 运算符?

    我正在使用一个QGraphicsScene小部件并在其上显示一些点QGraphicsRectItem 这意味着要拨打很多电话new addItem 当出现时 并且removeItem delete摆脱未使用的点 当然 对于性能问题 我已经实
  • 如何向同一个 QMenu 添加多个 QAction?

    我正在尝试实现 Qt 菜单自定义 并且我提供了一个功能来添加相同的功能QAction在同一个人民币上下文菜单中多次 但是当我尝试这样做时 myMenu gt addAction myAction myMenu gt addAction my
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 是否可以在 Qt Creator 中将 Qt 样式表与升级的小部件一起使用?

    我正在尝试使用 Qt 样式表对标准小部件进行一些重大的重新设计 因此 在为不同的小部件手动完成大部分工作之后 objectName选择器 我决定以某种方式对类似的小部件进行分组 例如我有多个QFrames其作用类似于内部表单中的标题 我希望
  • Qt GUI 应用程序中的控制台输出?

    我有一个在 Windows 上运行的 Qt GUI 应用程序 它允许传递命令行选项 在某些情况下我想向控制台输出一条消息 然后退出 例如 int main int argc char argv QApplication a argc arg

随机推荐

  • Kali:SYN简单泛洪攻击(DOS攻击)

    Kali SYN简单泛洪攻击 原理解析 工具原理解析 正式攻击思路 攻击演示 原理解析 SYN泛洪攻击 利用三次握手的缺陷 让tcp连接始终处于未成功连接的半连接状态 攻击机仅发出第一次握手 不对返回信息进行确认 服务器由于需要不断处理连接
  • ESP8266教程4 — ESP8266 智能配网

    按照前面的教程演示 如果想要给esp8266模块联网 可以使用AT指令加上SSID和密码即可以让模块连接到无线网络上 但是对于一个投向了市场的产品而言 消费者购买了你的一个可以联网的智能产品 当他们想要使用的时候总不能让消费者也使用AT指令
  • Java多线程技术

    Java多线程技术 Java中如何实现多线程 继承Thread类 实现Runnable接口 实现Callable接口 通过继承Thread类实现多线程 继承Thread类实现多线程的步骤 继承Thread类 重写方法run 来完成其操作的
  • flutter 自定义微信/支付宝密码输入框

    如图 项目需求需要实现以上效果 思路解析 1 可以用dialog来实现 2 可以用一个新statfulWidget实现 因为不大熟悉dialog 故用了一个新的statefulWidget来实现页面效果 直接上代码 功能 描述 设置密码弹框
  • JavaWeb中JSP和Servlet的相关知识

    JSP注释代码 引入JAVA包 举例 JSP中的JAVA代码块 在此代码块中可以定义变量和方法 定义的变量为局部变量 定义表达式 只能定义变量 且定义的变量为成员变量 输出表达式 直接向网页显示包含内容的value 局部变量 执行 JSP时
  • jQuery AJAX获取JSON数据解析多种方式示例

  • 阿里云云计算ACP学习笔记(Wakin老师)——云计算基础

    1 云计算最早可追溯到2012年 2 传统IT系统面临的问题 1 资源利用率低 传统服务器的资源占用率不均衡 个别在30 40 大多数在10 企业所投产的IT资源未得到有效利用 2 业务上线时间长 从设备采购开始到上架多则半年一年 3 能耗
  • synchronized与(ReentrantLock)Lock的对比区别

    类别 synchronized Lock 存在层次 Java关键字 属于原生语法层面 需要jvm实现 而Lock它是JDK 1 5之后提供的API层面的互斥锁 需要lock 和unlock 方法配合try finally语句块来完成 锁的释
  • UEFI模式下安装Centos 7

    UEFI模式下安装Centos 7存在的问题 在U盘刻录系统镜像的时候 U盘label实际会和系统镜像中默认路径的label不同 这导致在UEFI模式下引导程序不能正确地找到路径 而需要我们自己手动确认并修改成正确的路径 本文默认已经下载系
  • 【Linux】Ⅻ基础网络:数据链路层

    以太网协议 1 来自网络层的ip数据报会交给递交给数据链路层的以太网协议 2 网络层是负责数据从哪里来到哪里去 而数据链路层负责数据从链路当中的设备到相邻设备 以太网帧格式 MAC地址 网卡绑定着 每一块网卡都有一个全球唯一的MAC地址 目
  • vue3.0+echarts立体柱图

    前言 vue3 0实现echarts立体柱图 实现效果 实现步骤 1 安装echarts cnpm i save echarts 2 页面定义容器
  • Window11下载安装jdk8-jdk11与环境变量的配置

    目录 1 下载jdk 1 1 jdk8下载链接 请点击网址 1 2 jdk11下载链接 请点击网址 2 安装jdk 3 配置环境变量 3 1 打开设置 3 2 点击系统信息 3 3 高级系统设置 3 4 点击环境变量 3 5 新建系统变量
  • CSS 去掉input默认样式

    input background none outline none border none 如果input必须要有边框 但需要去掉选中时的蓝色框 则 input background none outline none border 1p
  • linux cp f命令,linux cp 命令

    功能 复制文件或目录 语法 cp 选项 源文件 目的 cp 选项 源目录 目的 选项 b backup 覆盖已存在的文件时先备份 f force 强行复制文件或目录 不管目标文件或目录是否已经存在 i interactive 覆盖已存在的文
  • 记一次安卓手机水印显示问题的排查历程

    近期在风控部门的要求下 我们在APP的一些关键页面上添加了水印 技术方案也比较简单 上线一切正常 不过大概一周之后 陆陆续续开始收到有花屏的反馈 具体截图如下类似 最开始考虑的可能是手机有自定义字体的缘故 后面偶然得知是因为安卓系统中辅助功
  • java: 错误: 不支持发行版本 5

    将project structure中的两部分保持版本一致 将modules里面的language level与上面的保持一致 将图中的和上面的保持一致
  • #芯片# R8025(RX-8025T)

    实时时钟芯片 内置 32 768 kHz DTCXO 高稳定性 I2C 总线接口实时时钟模块 接口电压范围 1 8 V 至 5 5 V 温度补偿电压范围 2 2 V 至 5 5 V 宽定时器电压范围 1 6 V 至 5 5 V 时钟功能 该
  • Ubuntu 16.04.1 LTS下安装FreeRADIUS2.2.8并开启MySQL认证

    更新系统 sudo apt update sudo apt upgrade 安装MariaDB sudo apt get install software properties common sudo apt key adv recv ke
  • Linux基础开发工具

    提示 本文内容较长 请参考左侧目录阅读 Linux基础开发工具 1 软件包管理器yum 1 1 yum的基本操作 1 2 关于lrzsz 2 Linux编辑器vim 2 1 安装vimforcpp插件 2 2 修改vim配置 2 3 常见错
  • Qt限制LineEdit的输入

    要限制输入需要用到Validator才能限制QLineEdit的输入 具体的两种表现方式 第一种是利用正则表达式QRegExp 例如下图所示 QRegExp rx1 QRegExp 0 9 正则表达式 限制数字与点的输入 QValidato