当前位置: 首页 > article >正文

Qt-常用输入类控件

QLineEdit

QLineEdit ⽤来表⽰单⾏输⼊框. 可以输⼊⼀段⽂本, 但是不能换⾏

核心属性:

核心信号: 

录入个人信息:

 

inputMask 只能进⾏简单的输⼊格式校验.
实际开发中, 基于正则表达式的⽅式是更核⼼的⽅法

用正则表达式验证手机号

使⽤ QRegExpValidator 创建⼀个验证器对象. Qt 中内置了四个主要的验证器对象 

 

QRegularExpressionValidator 在匹配性能上做出了⼀定优化. 但是从使⽤⻆度讲, 和
QRegExpValidator 差别不⼤. 我们使⽤ QRegExpValidator 即可

验证两次输入的密码一致 

演示:

在代码那里,我们封装了一个函数,这样可以提高代码的可维护性,使得代码变得简洁。

另外,

这里的作用是为了让Qt不要报警告,不然它会报一个没有使用arg1变量的警告。

 

切换显示密码 

注意,这里的check box用的信号是toggled ,这个形参checked代表它是否被选中。

QTextEdit 

QTextEdit不仅能表示纯文本,还能表示html和markdown,并且跟QLineEdit不同,这个是可以多行输入的。

核心属性:
 

核心信号:

 同步获取多行输入框的内容

这里获取 QTextEdit文本的接口是 toPlainText。

使用的信号是textChanged。

验证输入框的各种信号  

验证是否能被拷贝:

当我们光标选取到内容时:

就会触发信号,此时的形参b就是true,表示能拷贝,当我们没有选中任何内容时,会再次触发信号,此时b就变成false了。

验证光标的位置是否移动:

 

验证redo

比如我们平常在写代码 的时候,如果用了ctrl + z的方式进行了一次撤回,那么此时就可以用ctrl + y的方式来进行撤回的撤回,那么此时redo就是true,反之,如果不能使用ctrl + y,那么redo就是false

当我使用一次ctrl + z后,redo就是true了,那么当我再使用一次ctrl + y后

 

就变为false了。

还有一个undo,就是反过来的,就是是否能使用ctrl + z。

QComboBox 

QComboBox 表⽰下拉框 

核心属性:

核心方法:
 

核心信号:

使用下拉框模拟老婆许愿井 

 

 注意,std的string类型如果要转换成QString,可以借助QStirng类型中的静态成员函数。

 从文件加载下拉框的选项

首先,我们先创建一个文本,记住它所在的路径。

效果是一样的

下拉框里的内容很多时候不是代码写死的,而是通过文件/网络加载出来的,这里我们就演示了以文件的方式加载下拉框的内容。 

 QSpinBox

使⽤ QSpinBox 或者 QDoubleSpinBox 表⽰ "微调框", 它是带有按钮的输⼊框. 可以⽤来输⼊整
数/浮点数. 通过点击按钮来修改数值⼤⼩.

关键属性

 

核心信号;

今天吃啥? 

QDateTimeEdit 

核心属性:

核心信号

实现日期计算器 

计算两个日期的差值,还需要用到一个QDateTime类。

它提供了两个方法:

 

注意,QdateTime提供的计算天数的方法不是很合理,在Qt的官方文档中可以看到这样的描述:

最后举了一个例子,就是今日的 23:55到明天的0:05,按理来说这样只有十分钟的差距,并不能当作一天,但是daysto方法却会把它当作一天来计算。 

所以我们可以根据秒数重新计算一下它的真实天数

演示效果 

QDial 

使⽤ QDial 表⽰⼀个 旋钮 

核心属性:

核心信号:

调整窗口透明度 

注意这个旋钮选择的信号 

QSlider 

使⽤ QSlider 表⽰⼀个滑动条 

 

核心属性:
 

核心信号

 

调整窗口大小 

 

 

 

 

通过⾃定义快捷键调整滑动条位置

在默认情况下,我们可以通过上下左右这四个方向键来控制滑动条,对于有多个滑动条的情况,我们可以用tab来切换选中的滑动条,用鼠标也可以。

另外,我们还可以自定义快捷键来调整滑动条的位置。

使⽤ QShortCut 类设置快捷键.
快捷键触发时, 会发出 QShortcut::activated 信号, 我们连接到⾃⼰写的 slot 函数

 

 

我们通过一个类设置了一个快捷键,然后通过connect将这个类的一个信号和我们自定义的槽函数进行连接。

演示:
 

 


http://www.kler.cn/a/408058.html

相关文章:

  • 好用的 IDEA 插件
  • 【LeetCode面试150】——219存在重复元素
  • C语言内存结构
  • 微网能量管理研究
  • [高阶数据结构(一)]并查集详解
  • 泷羽sec-星河飞雪-shell-5
  • 钉钉免登录接口
  • Nginx正向代理處理HTTPS請求詳解
  • 【系统架构设计师】真题论文: 论软件可靠性设计技术的应用(包括解题思路和素材)
  • java excel 导入各种踩坑
  • el-table设置轻提示:show-overflow-tooltip=“true“,改变轻提示宽度
  • Java零拷贝二步曲——Linux 中的零拷贝技术
  • 3、.Net UI库:EASkins - 开源项目研究文章
  • 开源框架重构说明
  • C0030.Clion中运行提示Process finished with exit code -1073741515 (0xC0000135)解决办法
  • C++特殊类设计(不能被拷贝的类、只能在堆上创建对象的类、不能被继承的类、单例模式)
  • Tomcat的工作模式是什么?
  • 【DP】个人练习-Leetcode-2019. The Score of Students Solving Math Expression
  • React项目设置不同模式(开发development与生产production)——cross-env与env-cmd详解
  • TCP socket api详解