常用控件(三)

news2024/9/23 7:26:25

输入类控件

  • QLineEdit
  • QTextEdit
  • QComboBox
  • QSpinBox
  • QDateTimeEdit
  • QDial
  • QSlider

QLineEdit

QLineEdit用来表示单行输入框,可以输入一段文本,但是不能换行;

核心属性:

属性说明
text输入框中的文本
inputMask输入内容格式约束
maxLength最大长度
frame是否添加边框
echoMode显示方式: 1. QLineEdit::Normal: 这是默认值,文本框会显示输入的文本。2. QLineEdit::Password: 这种模式下,输入的字符会被隐藏,通常使用(*)或(=)来替换 3. QLineEdit::NoEcho: 这种模式下,文本框不会回显任何输入的字符
cursorPosition光标所在位置
alignment文字对齐方式,设置水平和垂直方式的对齐
dragEnabled是否允许拖拽
readOnly是否是只读的(不允许修改)
placeHolderText当输入框内容为空的时候,显示什么样子的提示信息
clearButtonEnabled是否会自动显示出“清除按钮”

核心信号:

信号说明
void cursorPositionChanged(int old, int new)当鼠标移动时发出信号,old为先前的位置,new为新位置
void editingFinished()当按返或回车键时,或者行编辑失去焦点时,发出此信号
void returnPressed()当返回或回车键按下时触发该信号,如果设置了验证器,那么必须通过验证,才能触发
void selectionChanged()当选中的⽂本改变时,发出此信号
void textChanged(const QString &text)当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。代码对⽂本的修改能够触发这个信号.
void textEdited(const QString &text))当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。代码对⽂本的修改不能触发这个信号.

eg1: 使用QLineEdit控件来录入用户信息,并且将用户信息打印在控制台:
在这里插入图片描述
当我们点击确认的时候,就能够在控制台打印接收到的消息
核心代码:
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述

eg2:使用验证器来对输入的内容进行验证,当验证通过时,则将提交按钮设置为可点击,反之则将提交按钮设置为不可点击;
设计思路:
当输入框中的内容发生变化的时候,QLineEdit会发出textEdited信号,并且这个信号还会携带上此时输入框中的内容,此时我们可以捕捉这个信号,然后在对应的槽函数中使用验证器来对输入框中的内容进行验证,验证通过则将提交按钮设置为可用状态,否则则将提交按钮设置为禁用状态;
这个验证器Qt,主要有以下几种:
在这里插入图片描述
针对于验证器,我们可以将这个验证器设置进QLineEdit然后进行使用,也可以每次捕捉textEdited信号的时候创建出来使用,这里我们选择第一种做法;
核心代码如下:
在这里插入图片描述
运行结果:
在这里插入图片描述

eg3:验证两次输入的密码一致
核心代码:
在这里插入图片描述
在这里插入图片描述
eg4: 切换显示密码
在这里插入图片描述
核心代码:
在这里插入图片描述
在这里插入图片描述

QTextEdit

QTextEdit表示多行输入框,也是一个富文本编辑器,并且能够在内容超范围时自动提供滚动条;

核心属性:

属性说明
markdown输⼊框内持有的内容. ⽀持 markdown 格式. 能够⾃动的对markdown ⽂本进⾏渲染成 html
html输⼊框内持有的内容. 可以⽀持⼤部分 html 标签. 包括 img 和 table 等.
placeHolderText输⼊框为空时提⽰的内容.
readOnly是否是只读的
undoRedoEnable是否开启 undo / redo 功能.按下 ctrl + z 触发 undo;按下 ctrl + y 触发 redo
autoFormating开启⾃动格式化
tabstopWidth按下缩进占多少空间
overwriteMode是否开启覆盖写模式
acceptRichText是否接收富⽂本内容
verticalScrollBarPolicy垂直⽅向滚动条的出现策略•Qt::ScrollBarAsNeeded : 根据内容⾃动决定是否需要滚动条。这是默认值。•Qt::ScrollBarAlwaysOff : 总是关闭滚动条。•Qt::ScrollBarAlwaysOn : 总是显⽰滚动条。
horizontalScrollBarPolicy⽔平⽅向滚动条的出现策略•Qt::ScrollBarAsNeeded : 根据内容⾃动决定是否需要滚动条。这是默认值。•Qt::ScrollBarAlwaysOff : 总是关闭滚动条。•Qt::ScrollBarAlwaysOn : 总是显⽰滚动条。

核心信号

信号说明
textChanged()⽂本内容改变时触发
selectionChanged()选中范围改变时触发
cursorPositionChanged()光标移动时触发
undoAvailable(bool)可以进⾏ undo 操作时触发
redoAvailable(bool)可以进⾏ redo 操作时触发
copyAvaiable(bool)⽂本被选中/取消选中时触发

eg1:获取多行输入框的内容
在这里插入图片描述

核心代码:
在这里插入图片描述
运行结果
在这里插入图片描述
eg2:验证输入框的各种信号
在这里插入图片描述

QComboBox

QComboBox表示下拉框;

核心属性:

属性说明
currentText当前选中的⽂本
currentIndex当前选中的条⽬下标.从 0 开始计算. 如果当前没有条⽬被选中, 值为 -1
editable是否允许修改,设为 true 时, QComboBox 的⾏为就⾮常接近 QLineEdit , 也可以设置 validator
iconSize下拉框图标 (⼩三⻆) 的⼤⼩
maxCount最多允许有多少个条⽬

核心信号:

信号说明
activated(int)当⽤⼾选择了⼀个选项时发出.
activated(const QString & text)当⽤⼾选择了⼀个选项时发出
currentIndexChanged(int)当前选项改变时发出.
currentIndexChanged(const QString & text)当前选项改变时发出
editTextChanged(const QString & text)当编辑框中的⽂本改变时发出(editable 为 true 时有效)

eg1: 使用下拉框模拟麦当劳点餐
在这里插入图片描述

核心代码:
在这里插入图片描述
运行结果:
在这里插入图片描述
eg2:从⽂件中加载下拉框的选项
在这里插入图片描述
设计图:
在这里插入图片描述
核心代码:
在这里插入图片描述

运行结果:
在这里插入图片描述

QSpinBox

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

核心属性

属性说明
value存储的数值.
singleStep每次调整的 “步⻓”. 按下⼀次按钮数据变化多少.
displayInteger数字的进制. 例如 displayInteger 设为 10, 则是按照 10 进制表⽰. 设为 2 则为 2进制表⽰.
minimum最⼩值
maximum最⼤值
suffix后缀
prefix前缀
wrapping是否允许换⾏
frame是否带边框
alignment⽂字对⻬⽅式.
readOnly是否允许修改
buttonSymbol按钮上的图标.UpDownArrows 上下箭头形式;PlusMinus 加减号形式;NoButtons 没有按钮
accelerated (加速的)按下按钮时是否为快速调整模式
correctionMode输⼊有误时如何修正.QAbstractSpinBox::CorrectToPreviousValue : 如果⽤⼾输⼊了⼀个⽆效的值(例如,在只能显⽰正整数的SpinBox中输⼊了负数),那么SpinBox会恢复为上⼀个有效值。例如,如果SpinBox的初始值是1,⽤⼾输⼊了-1(⽆效),然后SpinBox会恢复为1。QAbstractSpinBox::CorrectToNearestValue : 如果⽤⼾输⼊了⼀个⽆效的值,SpinBox会恢复为最接近的有效值。例如,如果SpinBox的初始值是1,⽤⼾输⼊了-1(⽆效),那么SpinBox会恢复为0。
keyboardTrack是否开启键盘跟踪.设为 true, 每次在输⼊框输⼊⼀个数字, 都会触发⼀次 valueChanged() 和textChanged() 信号.设为 false, 只有在最终按下 enter 或者输⼊框失去焦点, 才会触发valueChanged() 和 textChanged() 信号.

核心信号

信号说明
textChanged(QString)微调框的⽂本发⽣改变时会触发.参数 QString 带有 前缀 和 后缀.
valueChanged(int)微调框的⽂本发⽣改变时会触发.参数 int, 表⽰当前的数值.

eg1:调整⻨当劳购物⻋中的份数.
设计图纸:
在这里插入图片描述
核心代码:
在这里插入图片描述
运行结果:
在这里插入图片描述

QDateTimeEdit

在这里插入图片描述

核心属性:

属性说明
dateTime时间⽇期的值. 形如 2000/1/1 0:00:00
date单纯⽇期的值. 形如 2001/1/1
time单纯时间的值. 形如 0:00:00
displayFormat时间⽇期格式. 形如 yyyy/M/d H:mm; y 表⽰年份; M 表⽰⽉份; d 表⽰⽇期; H 表⽰⼩时; m 表⽰分钟; s 表⽰秒
minimumDateTime最⼩时间⽇期
maximumDateTime最⼤时间⽇期
timeSpecQt::LocalTime :显⽰本地时间。Qt::UTC :显⽰协调世界时(UTC)。Qt::OffsetFromUTC :显⽰相对于UTC的偏移量(时差).

核心信号:

信号说明
dateChanged(QDate)⽇期改变时触发.
timeChanged(QTime)时间改变时触发.
dateTimeChanged(QDateTime)时间⽇期任意⼀个改变时触发.

eg1:编写一个日期计算器
在这里插入图片描述

核心代码:
在这里插入图片描述
运行结果:
在这里插入图片描述

QDial

旋纽

核心属性:

属性说明
value持有的数值.
minimum最⼩值
maximum最⼤值
singleStep按下⽅向键的时候改变的步⻓.
pageStep按下 pageUp / pageDown 的时候改变的步⻓.
sliderPosition界⾯上旋钮显⽰的 初始位置
tracking外观是否会跟踪数值变化.默认值为 true. ⼀般不需要修改.
wrapping是否允许循环调整.即数值如果超过最⼤值, 是否允许回到最⼩值.(调整过程能否 “套圈”)
notchesVisible是否显⽰ 刻度线
notchTarget刻度线之间的相对位置.数字越⼤, 刻度线越稀疏.

核心信号:

信号说明
valueChanged(int)数值改变时触发
rangeChanged(int, int)范围变化时触发

eg1:通过旋钮来控制窗口透明度

在这里插入图片描述

核心代码:

在这里插入图片描述
运行结果:
在这里插入图片描述

QSlider

QSlider 表⽰⼀个滑动条.

QSlider 和 QDial 都是继承⾃ QAbstractSlider , 因此⽤法上基本相同.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1915638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java中实现二维数组(矩阵)的转置

在矩阵运算中,矩阵的转置是一个基本操作,即将矩阵的行变成列,列变成行。在Java中,我们可以通过编写一个方法来实现二维数组的转置。下面,我将详细介绍如何在Java中完成这一任务,并提供完整的代码示例。 编…

java算法day11

二叉树的递归遍历二叉树的非递归遍历写法层序遍历 递归怎么写? 按照三要素可以保证写出正确的递归算法: 1.确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且…

运维锅总详解进程、内核线程、用户态线程和协程

I/O 密集型应用、计算密集型应用应该用什么实现?进程、内核线程、用户态线程、协程它们的原理和应用场景又是什么?如何组合它们才能让机器性能达到最优?它们的死锁和竞态又是什么?如何清晰地表示它们之间的关系?希望读…

创新设计策略:提升大屏幕可视化设计效果的关键方法

随着科技的不断发展和数据量的快速增长,数据可视化大屏在各个行业中的应用越来越广泛,可以帮助人们更好地理解和分析数据,可视化大屏设计也因此成了众多企业的需求。但很多设计师对可视化大屏设计并不了解,也不知道如何制作可视化…

一.9 重要主题

在此,小结一下我们旋风式的系统漫游。这次讨论得出一个很重要的观点,那就是系统不仅仅只是硬件。系统是硬件和系统软件互相交织的集合体。它们必须共同协作以达到运行应用程序的最终目的。本书的余下部分会讲述硬件和软件的详细内容,通过了解…

UnityHub 无法添加模块问题

文章目录 1.问题描述2.问题解决 1.问题描述 在Hub中无法添加模块 2.问题解决 1、点击设置 2、设置版本安装位置 可以发现installs的安装位置路径设置不是unity安装位置,这里我们更改成自己电脑unity安装位置的上一级路径 添加模块正常:

java链表常见简单面试算法题

头插法、尾插法 头插法:先待插入指向头结点的next,后头结点的next指向待插入。 尾插法:借助尾指针,直接插入 /*** 头插法* param head* return*/public static Node head_insert(Node head, int t){Node nodenew Node(t);node.set…

vitis2021.1生成设备树

PL端功能相关的dtsi动态设备树源文件的生成,需依赖Xilinx设备树源码包 其下载地址为:https://github.com/Xilinx/device-tree-xlnx/tree/xlnx_rel_v2021.1 打开vitis软件,导入xilinx设备树源码包 点击Xilinx->Software Repositories 完成…

中霖教育:经济师的十个专业类别怎么选?

经济师一共包含十个专业类别,分别是工商管理、农业经济、财政税收、金融、保险、人力资源管理、旅游经济、运输经济、建筑与房地产经济、知识产权。 经济师选择报考专业时有哪些建议? 1、职业规划是选择专业的首要考虑点。未来的职业发展途径应与所选专业紧密相连…

使用lv虚拟卷扩展磁盘

使用centos演示。 首先创建centos虚拟机。链接:VMWARE安装Centos8,并且使用ssh连接虚拟机-CSDN博客 1. 增加磁盘。 选中要扩容的虚拟机,右键选择设置,然后点击磁盘,选择添加。 这里选择NVM的磁盘。选择这种磁盘是为了保持与之前…

昨日头条管理系统设计

设计一个“昨日头条”类似的内容管理系统时,我们可以借鉴内容管理系统设计原则,并针对“昨日头条”这类新闻资讯类应用的特点进行定制化设计。以下是一些关键点: 1. 内容采集与整合 智能抓取:设计爬虫系统自动抓取国内外各大新闻…

SOLIDWORKS 2024多方面优势

在工程设计领域,SOLIDWORKS始终以其优越的功能和不断创新的技术,带领着行业的发展方向。随着SOLIDWORKS 2024版本的发布,这款三维设计软件再次展现了其多方面的显著优势,为设计师和工程师们提供了更加智能、便捷的工作平台。 一、…

单词间隔重复算法

间隔重复算法 理论背景 遗忘曲线是一种描述记忆遗忘率的模型,艾宾浩斯在其著作《记忆:实验心理学的贡献》中首次详细描述了遗忘曲线,他使用了一些无意义的字母组合作为记忆对象,通过在不同的时间间隔后检查记忆的遗忘程度&#…

论文学习_Getafix: learning to fix bugs automatically

1. 引言 研究背景:现代生产代码库极其复杂并且不断更新。静态分析器可以帮助开发人员发现代码中的潜在问题(在本文的其余部分中称为错误),这对于在这些大型代码库中保持高代码质量是必要的。虽然通过静态分析尽早发现错误是有帮助的,但修复这些错误的问题在实践中仍然主要…

浅谈化工厂环保管理的痛点、智慧环保的必要性及EHS系统的实现路径

在全球环保意识日益增强的背景下,化工厂作为工业领域的重要组成部分,其环保管理显得尤为重要。然而,化工厂在追求经济效益的同时,也面临着诸多环保管理的痛点。本文将围绕化工厂环保管理的痛点、化工厂为何需要智慧环保以及如何借…

一阶线性微分方程应用实例:并联RC电路恒定电流求解电压

对于并联RC电路,我们可以通过求解微分方程来找出电压 V(t)。 微分方程求解 我们开始于给定的表达式: 重写方程: 将方程的形式调整为标准的线性微分方程形式: 这是一个一阶线性微分方程,我们可以使用积分因子法来解…

ROS服务通信自定义srv

服务通信自定义srv 流程:创建ROS功能包按照固定格式创建srv文件编译配置文件编译生成中间文件 流程: srv 文件内的可用数据类型与 msg 文件一致,且定义 srv 实现流程与自定义 msg 实现流程类似,需查阅msg文件的可以浏览ROS话题通信流程自定义数据msg格式…

红日靶场----(三)2.漏洞利用

上期的通过一句话木马实现对目标主机的持久后门 我使用的是蚁剑,蚁剑安装及使用参考: 下载地址: GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器 安装即使用: 1. 快速入门 语雀 通过YXCMS的后台GETSHELL 利用…

【测开能力提升-fastapi框架】介绍简单使用

0. 前期说明 立了很多flag(开了很多专题),但坚持下来的没几个。也干了很多测试工作(起初是硬件(Acoustic方向)测试 - 业务功能测试 - 接口测试 - 平台功能测试 - 数据库测试 - py自动化测试 - 性能测试 - 嵌入式测试 - 到最后的python测试开发),最终还是…

链表---头插法+尾插法

本博客介绍了单链表的实现,以及头插法尾插法的代码实现 1.定义一个结点类 class ListNode{int value;ListNode next;public ListNode(int value) {super();this.value value;}Overridepublic String toString() {return "ListNode{" "value" …