QT开发之QLineEdit

2023-10-31

1、设置输入限制

QLineEdit lineedit = new QLineEdit(this);
QRegExp rx("([a-zA-Z0-9])+([0])");//设置为只能输入数字和英文
QRegExpValidator *pRevalidotor = new QRegExpValidator(rx,this);
lineedit->setValidator(pRevalidotor);
lineedit->setMaxLength(10);  //设置lineEdit最大长度

2、有时候限制判断比如10-100;这个时候就需要使用输入完成判断来判断输入的值是否为0-9

即使用editingFinished()信号光标进入和离开编辑框来进行判断数据,这个时候序号设置为范围是0-100,设置<10的时候=10,当输入0-9时才会发送这个信号

注:记得设置窗口为Qt::ClickFocus 0x2 接受鼠标单击做焦点

enum Qt::FocusPolicy

This enum type defines the various policies a widget can have with respect to acquiring keyboard focus.

Constant Value Description

Qt::TabFocus 0x1  接受Tab键焦点

Qt::ClickFocus 0x2 接受鼠标单击做焦点

Qt::StrongFocus TabFocus | ClickFocus | 0x8 接受Tab键和鼠标单击做焦点

Qt::WheelFocus StrongFocus | 0x4  滑轮作为焦点选中事件

Qt::NoFocus 0 不接受焦点

3、输入小数

lineedit->setValidator(new QDoubleValidator(-100.0,100.0,2,this));//其中2表示只能输入2位小数

4、获取焦点状态

QLineEdit中因为QLineEdit::editingFinished存在一些问题,输入的值不在范围内焦点离开时就不会发送信号。

第一种方法:

新建C++ clss,重写QLineEdit类,

focusInEvent(QFocusEvent *e)//焦点进入进入时信号

focusOutEvent(QFocusEvent *e)//为焦点离开时信号

在focusOutEvent内进行判断离开时编辑框中的数据是否正确

第二种方法:

使用过滤器,

在创建编辑框后添加

ui->lineEdit1->installEventFilter(this);  //在窗体上为lineEdit1安装过滤器
bool Core::eventFilter(QObject *watched, QEvent *event)
{
     if (watched==ui->lineEdit1)         //首先判断控件(这里指 lineEdit1)
     {
          if (event->type()==QEvent::FocusIn)     //然后再判断控件的具体事件 (这里指获得焦点事件)
          {
              QPalette p=QPalette();
              p.setColor(QPalette::Base,Qt::green);
              ui->lineEdit1->setPalette(p);
          }
          else if (event->type()==QEvent::FocusOut)    // 这里指 lineEdit1 控件的失去焦点事件
          {
              QPalette p=QPalette();
              p.setColor(QPalette::Base,Qt::white);
              ui->lineEdit1->setPalette(p);
           }
     }
     return QWidget::eventFilter(watched,event);     // 最后将事件交给上层对话框
}

在焦点离开处判断编辑框中内容是否正确

5、设置无边框透明和提示

ui->lineEdit->setStyleSheet("QLineEdit{background-color:transparent}"//透明
                                      "QLineEdit{border-width:0;border-style:outset}");//无边框
    ui->lineEdit->setPlaceholderText("a-z A-Z 0-9 - and Space");//提示

6、设备光标在编辑框中和全选

ui->lineEdit->setFocus();
QTimer::singleShot(0, ui->lineEdit, &QLineEdit::selectAll);

7、设置滚动条

设置方式和QT开发之QListWidget控件一样,但是还需要加上才能生效

#include <QScrollBar>
#include <QStyle>

ui->textEdit->verticalScrollBar()->style()->polish(ui->textEdit->verticalScrollBar());

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

QT开发之QLineEdit 的相关文章

  • 如何在 C++ 和 QML 应用程序中使用 qrc?

    我在 Windows7 上用 c qnd Qt Creator QML 编写了 Qt Quick Desktop 应用程序 现在 我必须部署它 并且我需要隐藏 qml 文件和图像 意味着 将它们放入资源等中 我读到有一个很好的方法可以使用
  • Qt:将拖放委托给子级的最佳方式

    我在 QWidget 上使用拖放 我重新实现了 DragEnterEvent dragLeaveEvent dragMoveEvent 和 dropEvent 效果很好 在我的 QWidget 中 我有其他 QWidget 子级 我希望它们
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • GoQt 致命错误:QAbstractAnimation:没有这样的文件或目录

    我尝试编译 Qt 来开发桌面应用程序 我按照 Qt 网站上的官方 wiki 指南的说明进行操作 当我尝试go run示例文件夹中的示例 我收到错误 去运行 home pinkya rabbit workspace go1programs s
  • QTcpSocket 有时不发送数据

    我有两个 QT 应用程序 一个应用程序可以被认为保存了大数据 它每秒向第二个应用程序发送大约 10 KB 的数据块 之前我尝试使用QUdpSocket来传输数据 但由于MTU限制在2 5K左右 并且需要自己分割和重新组合数据 所以我改用QT
  • 如何在带有预编译头的项目中使用google protobuf

    我有一个包含多个项目的解决方案 我的项目 但不是全部 使用预编译头 我决定使用 protobuf 但遇到了一个问题 在 protoc exe 从 proto 生成 pb h 后 我尝试包含标头并收到错误 预编译标头未包含在 pb h 中 我
  • 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

    几天来我一直在尝试使用 Visual Studio 2013 构建 Qt 的静态版本 我就是不明白我做错了什么 System Windows 7 64 位 Visual Studio 2013 仍安装 Visual Studio 2012
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • Qt 插槽是否与其他代码并行运行?

    在此函数示例中 void MyClass myFunction emit MySignal1 emit MySignal2 如果我有slot1倾听MySignal1 and slot2倾听MySignal2 1 Is slot1总是会在之前
  • Qt:在多个布局中使用一个小部件

    我有一个 QTabBar 所有选项卡都应该有相同的小部件 layout1 gt addWidget w layout2 gt addWidget w 然而打电话addWidget第二次导致该小部件在第一个布局中消失 有没有办法使用一个小部件
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 如何在 QtQuick 2 中对 QML TableView 进行排序?

    我想使用 Qt 5 1 实现具有自定义角色的可排序 TableView 但我不知道当用户单击标题时该怎么做才能对其进行排序 在我的 Qt pro 文件中 我添加了 android ios blackberry qtHaveModule wi
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • QML 连接:不推荐使用连接中隐式定义的 onFoo 属性

    升级到 Qt 5 15 时收到以下错误消息 QML Connections Implicitly defined onFoo properties in Connections are deprecated Use this syntax
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 如何将 zlib 添加到现有的 qt 安装中

    如何将 zlib 添加到 Qt 的现有安装中 我对此很陌生 所以请给我详细的描述 提前感谢您的帮助 zlib 包含在 Qt 核心库中 如果你想在 Qt 程序中使用 zlib 函数 你只需要包含 src 3rdparty zlib 中的 zl
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • 是否可以在 Qt Creator 中将 Qt 样式表与升级的小部件一起使用?

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

    How do I get rid of the whitespace in my application 我想摆脱 QTableWidget 中的空白 蓝色箭头 我该怎么做 这是我的应用程序的代码 gridLayout QGridLayou
  • 为什么 QGraphicsWidget 的选择边框在 QGraphicsScene 中不可见?

    我已经通过一个小部件添加到图形场景 QGraphicSscene QGraphicsProxyWidget 问题是 当我选择该项目时 它被选中 但选择边框不可见 这是代码 QDial dial new QDial Widget dial g

随机推荐

  • 机器学习葡萄酒质量_通过数据和机器学习制作出更好的啤酒和葡萄酒

    机器学习葡萄酒质量 带GPS的狗 电子鼻和可倾倒完美啤酒的机器人 GPS Wearing Dogs an Electronic Nose and a Robot That Pours the Perfect Beer Bushfires i
  • Hal库自动生成Freertos时出现osSemaphoreCreate和osSemaphoreWait报错

    由于freertos和Hal版本问题 生成的函数会生成老版本的 所以不兼容 需要改掉 将osSemaphoreCreate osSemaphore SEM 1 改成 osSemaphoreNew 1 1 osSemaphore SEM in
  • TimeGAN学习记录

    一 学习TimeGAN主要参考的链接如下 1 知乎上的TimeGAN论文研读 2 csdn上的一篇博客 论文阅读 Time Series Generative Adversrial Networks TimeGAN 时间序列GAN 3 时间
  • 使用神经网络对黄金期货交割价格进行预测-4 MATLAB

    上一篇文章讲述了如何对预测的结果进行合理化修正 本文主要讲述的是对神经网络本身的学习算法进行优化 一般优化神经网络有三种模式 一种为优化神经网络的连接结构 一种为优化神经网络的学习算法 一种为既优化连接结构 又优化学习算法 由于笔者的知识水
  • JetBrains下载历史版本

    https www jetbrains com clion download other html 在上方的链接中将clion改为idea phpstrom webstrom等等 转载于 https www cnblogs com yang
  • WuThreat身份安全云-TVD每日漏洞情报-2023-10-08

    漏洞名称 Glibc ld so本地权限提升漏洞 漏洞级别 高危 漏洞编号 CVE 2023 4911 相关涉及 系统 ubuntu 22 04 glibc Up to excluding 2 35 0ubuntu3 4 漏洞状态 POC
  • java调用.so文件

    第一步 public class JavaToCTest private native void sayHello 声明本地方法 static System loadLibrary JavaToCTest 需要加载的so库文件的名称 在li
  • iptables的CONNMARK与MARK

    iptables的CONNMARK与MARK Posted on January 24 2012 iptables的CONNMARK与MARK是用于给数据连接和数据包打标记的两个target 一直没搞明白二者的区别 直到昨天花了不少时间解决
  • 【zookeeper】fsync-ing the write ahead log in took which will adversely effect operation latency

    1 概述 原文 zookeeper fsync ing the write ahead log in took which will adversely effect operation latency 在解决上一个问题的时候遇到这个问题的
  • windows应用商店或者其他微软应用打不开的修复办法

    最近突然发现微软自带的那个便笺打不开了 想在应用商店里面重装一下 又发现windows store也变成灰色的 并且有个小叹号 打不开了 右键这个store 设置里面重置也没用 最后在某乎上面看了个回答 照着试了试 发现可以了 这里把步骤记
  • Vue3 如何实现一个全局搜索框

    效果 点击搜索或者按下ctrl k键 页面就会出现搜索框 搜索框页面 SearchBar vue 搜索框的ts SearchBar ts 封装的搜索框hook useSearch ts 在app vue中出现搜索框 App vue 1 搜索
  • 使用 Go API 快速下载 excel 文件

    我们有几个 Golang API 可以为 csvfiles 提供服务 但在提供以编程方式生成的 excel 文件方面没有任何帮助 为了避免重新编写 我们可以借助此服务器开始 main go 这使我们能够服务于路由 和 excel downl
  • Linux Kafka 3.5 KRaft模式集群部署

    这里是weihubeats 觉得文章不错可以关注公众号小奏技术 文章首发 拒绝营销号 拒绝标题党 背景 kafka在KIP 500引入了KRaft替代Zookeeper来实现自我管理元数据 详细信息可以看原文链接 KIP 500 KRaft
  • 前端实习总结

    菜鸟自述 还是感叹一下时间的飞逝 大学一直在寻找 自己将来到底要干嘛 好在虽然学校老师教得不多 安排的项目到是挺多 做过不同类型的项目 做过pc端网站 pe端网站 其实也是 我只是普通人 无法在一开始就明确自己要做什么 还不是在一个个项目里
  • 人生就是不断地战斗。 --王者荣耀之宫本武藏

    阿里巴巴Dubbo Zookeeper注册中心 阿里巴巴MyCat分库分表 JVM调优 垃圾收集器与内存分配策略 串行 并行收集器带来的作用 Redis缓存技术 session统一管理案例实现 引入接口联调过程 Tomcat运行机制及框架
  • 端口转发及穿透内网

    文章目录 portmap nc 正向连接 内网主机出网 反向连接 内网主机不出网 netsh端口转发 端口转发 netsh端口转发监听meterpreter frp 例子 参考 portmap https github com Brucet
  • Linux中日志管理和常见故障

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的绽放 树高千尺 落叶归根人生不易 人间真情 目录 一 关于日志及管理 1 日志的功能
  • OD华为机试 25

    按索引范围翻转文章片段 描述 输入一个英文文章片段 翻转指定区域的单词顺序 标点符号和普通字母一样处理 例如输入字符串 I am a developer 0 3 则输出 developer a am I 输入描述 使用换行隔开3个参数 第一
  • @Cacheable使用详解

    1 功能说明 Cacheable 注解在方法上 表示该方法的返回结果是可以缓存的 也就是说 该方法的返回结果会放在缓存中 以便于以后使用相同的参数调用该方法时 会返回缓存中的值 而不会实际执行该方法 注意 这里强调了一点 参数相同 这一点应
  • QT开发之QLineEdit

    1 设置输入限制 QLineEdit lineedit new QLineEdit this QRegExp rx a zA Z0 9 0 设置为只能输入数字和英文 QRegExpValidator pRevalidotor new QRe