常用控件(三)

输入类控件

  • 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.mzph.cn/diannao/44495.shtml

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

相关文章

推荐算法有哪些?——协同过滤、内容推荐、DNN、FM、DeepFM

推荐算法是机器学习和数据挖掘领域的一个重要研究方向,旨在向用户或群体推荐可能感兴趣的物品或信息。 以下是对您提到的几种推荐算法的详细介绍: 1. 协同过滤(Collaborative Filtering) 定义:协同过滤是一种基于用…

FOLANNIC FD31 UPS工作原理介绍

1.1简介 FOLANNIC FD31系列UPS系工业级电厂型不间断电源,是为重要负载提供不受电网干扰、稳压、稳频的电力供应的电源设备,在市电掉电后,UPS可给负载继续提供一段时间供电,此系列UPS采用带输出隔离变压器的高频双变换结…

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

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

Windows部署MySQL环境

一、下载MySQL数据库 进入官网:https://www.mysql.com 找到红框位置,点击DOWNLOADS页面下翻,找到红框位置并点击进入(图片右下方那个) 选择红框部分 这里按照红框选择的是离线安装,之间点击download即可&…

【史上最全面ESP32】软件中断与硬件中断

文章目录 前言硬件中断硬件中断概念硬件中断的使用 软件中断软件中断概念软件中断的使用 总结 前言 ESP32是一款高度集成的芯片,具有强大的中断处理能力。在ESP32中,我们可以配置所有的GPIO引脚作为硬件中断源,通过附加它们到相应的中断服务…

JFlash读取和烧录加密stm32程序

JFlash读取和烧录加密stm32程序 安装后JFlash所在的目录:C:\Program Files\SEGGER\JLink 一、烧写加密程序 1、打开C:\Program Files\SEGGER\JLink目录,找到JFlash.exe,双击它,就可以打开该执行程序。见下图: 2、选择“Create …

代码随想录算法训练营第三十天 | 01背包问题 二维 01背包问题 一维 416. 分割等和子集

46. 携带研究材料(第六期模拟笔试) 题目描述 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和…

无题:天选之子?

1. 从一个人说起:孤独信 原名独孤如愿,字期弥头云中郡(今内蒙古自治区和林格尔县)人,鲜卑族西魏、北周(南北朝)时期名将,八柱国之一北塞俊郎,容仪俊美,善于骑射独孤侧帽&#xff1a…

SQL语法(DQL):SELECT 多表查询之子查询

1、子查询 定义:如果某一个SQL语句A包含了一个查询Select语句B,称B叫做子查询,称A叫做主查询,A带有子查询语句目的:提高代码复用性,间接提高代码开发效率分类: 条件子查询:将子查询…

开发指南042-产生待办

整个平台待办是统一处理的&#xff0c;各业务微服务需要产生待办时调用系统API <dependency><groupId>org.qlm</groupId><artifactId>qlm-api</artifactId><version>1.0-SNAPSHOT</version> </dependency> Autowired privat…

Nature Renderer 2022(植被渲染工具插件)

渲染大量详细的植被。 自然渲染器通过替换Unity的默认地形细节和树系统来提高植被渲染的质量。一切都适用于现有数据:使用相同的草地、植被和树木,并保留现有地形。我们只是升级您的渲染器。 Unity验证的解决方案 Nature Renderer受到25000多名开发人员的信任,是Unity验证的…

Llama-2 vs. Llama-3:利用微型基准测试(井字游戏)评估大模型

编者按&#xff1a; 如何更好地评估和比较不同版本的大语言模型&#xff1f;传统的学术基准测试固然重要&#xff0c;但往往难以全面反映模型在实际应用场景中的表现。在此背景下&#xff0c;本文作者别出心裁&#xff0c;通过让 Llama-2 和 Llama-3 模型进行井字游戏对决&…

【JavaScript脚本宇宙】无处不在的JavaScript库:解析音视频处理与实时通信技术

JavaScript库大揭秘&#xff1a;音视频、互动体验与实时通信 前言 在当今互联网时代&#xff0c;JavaScript已经成为前端开发中不可或缺的一部分。随着Web技术的不断发展&#xff0c;出现了许多优秀的JavaScript库&#xff0c;为开发者提供了丰富的工具和资源。本文将介绍几个…

STM32智能机器人手臂控制系统教程

目录 引言环境准备智能机器人手臂控制系统基础代码实现&#xff1a;实现智能机器人手臂控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;机器人手臂管理与优化问题解决方案与优化收尾与总结 1. 引言 …

Linux系统中磁盘管理LVM与挂载

Linux系统中磁盘管理LVM与挂载 本文以属于Linux系统基本概念&#xff0c;如果以查找教程教程&#xff0c;解决问题为主&#xff0c;只需要查看本文后半部分。如需要系统性学习请查看本文前半部分。 本文操作极容易导致主机无法自动重启&#xff0c;请慎重操作。操作前务必要进…

火热夏季:浦语*书生InternLM大模型实战闯关-入门岛之Linux基础知识

一、ssh链接与端口映射并运行hello_wold.py 1.创建开发机 InternStudio创建开发机 2.进入开发机 3.Ssh链接开发机 powerShell终端ssh链接开发机。 4.创建一个hello_world.py文件web demo 5.运行web demo 6.端口映射 7.本地浏览器打开web 二、 VSCODE 远程连接开发机并创建一个…

【最强八股文 -- 计算机网络】【快速版】TCP 与 UDP 头部格式

目标端口和源端口: 应该把报文发给哪个进程包长度: UDP 首部的长度跟数据的长度之和校验和: 为了提供可靠的 UDP 首部和数据而设计&#xff0c;接收方使用检验和来检查该报文段中是否出现差错 源端口号和目的端口号: 用于多路复用/分解来自或送到上层应用的数据。告诉主机报文段…

[机器学习]-人工智能对程序员的深远影响——案例分析

机器学习和人工智能对未来程序员的深远影响 目录 机器学习和人工智能对未来程序员的深远影响1. **自动化编码任务**1.1 代码生成1.2 自动调试1.3 测试自动化 2. **提升开发效率**2.1 智能建议2.2 项目管理 3. **改变编程范式**3.1 数据驱动开发 4. **职业发展的新机遇**4.1 AI工…

数字统计

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别// 注意 while 处理多个 caseint a in.nextInt();i…

基于深度学习的点云平滑

基于深度学习的点云平滑是一种利用深度学习模型处理和优化三维点云数据以消除噪声并提升平滑度的方法。该技术在自动驾驶、机器人导航、3D重建和计算机图形学等领域有着广泛应用。以下是关于这一领域的系统介绍&#xff1a; 1. 任务和目标 点云平滑的主要任务是从带有噪声和粗…