【Qt学习】QSpinBox 与 QDateTimeEdit 控件 的介绍与实例()

文章目录

  • QSpinBox
    • 1.1 介绍
    • 1.2 实例使用 - (模拟点餐-功能扩充)
    • 1.3 资源文件
  • 2. QDateTimeEdit
    • 2.1 介绍
    • 2.2 使用(计算时间差值 / 间隔)
      • daysTo() 与 secsTo()
    • 2.3 资源文件

QSpinBox

1.1 介绍

在这里插入图片描述

  • 对于QSpinBox,我们可以查阅 Qt的官方文档 进行了解:

这里简单进行总结:

  1. QSpinBox,即 微调框 ,用于提供一个用于输入整数值的微调控件。通常用于需要用户输入特定范围内整数值的界面

  2. QSpinBox提供了一个带有箭头按钮的文本字段,用户可以通过点击箭头按钮或手动键入来增加或减少值。它还提供了一些附加功能,如设置最小值、最大值和步长。

在这里插入图片描述

下面是QSpinBox的 核心属性:

属性描述
value当前SpinBox中显示的整数值
minimum允许输入的最小整数值
maximum允许输入的最大整数值
singleStep每次增加或减少的步长值
prefix显示在值之前的文本
suffix显示在值之后的文本
readOnly指示SpinBox是否为只读模式(用户无法编辑值)
wrapping指示SpinBox是否在达到最大或最小值时循环(wrap around)
alignment文本对齐方式
buttonSymbols箭头按钮上显示的符号类型(加号、减号等)
specialValueText指定一个特殊值的文本表示方式

1.2 实例使用 - (模拟点餐-功能扩充)

此前学习QComboBox类时,我们利用其实现了一个模拟点餐的功能,这里利用QSpinBox进行功能扩充:

  1. 在图形化界面下进行如下布局,并初始化下拉菜单(QComboBox):
    在这里插入图片描述

  2. widget.cpp中设置spinBox的范围

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 设置SpinBox的范围
    ui->spinBox_1->setRange(0, 10);
    ui->spinBox_2->setRange(0, 10);
    ui->spinBox_3->setRange(0, 10);
}
  1. 在按钮的 槽函数 中实现功能:
    • 提取顾客选择的餐饮的信息(名称与数量)
    • 弹出窗口输出提取的信息
void Widget::on_pushButton_clicked()
{
    // 获取下拉框中选中的内容
    QString text1 = ui->comboBox_1->currentText();
    QString text2 = ui->comboBox_2->currentText();
    QString text3 = ui->comboBox_3->currentText();

    QString output = text1 + ": " + QString::number(ui->spinBox_1->value()) +
                     "\n" + text2 + ": " + QString::number(ui->spinBox_2->value()) +
                     "\n" + text3 + ": " + QString::number(ui->spinBox_3->value());

    QMessageBox::information(this, "Output", output);
}

效果演示

请添加图片描述


1.3 资源文件

上述涉及的代码等资源文件在👇

QSpinBox控件的使用


2. QDateTimeEdit

2.1 介绍

在这里插入图片描述

同样的,我们可以查阅 Qt的官方文档 进行详细的认知,这里进行总结:

首先,简单介绍一下QDateEdit、QTimeEdit、QDateTimeEdit 三者的关系:

控件功能
QDateEdit编辑日期; 允许用户选择年、月和日。用户可以通过下拉菜单或手动输入来修改日期
QTimeEdit编辑时间 ; 允许用户选择小时、分钟和秒。用户可以通过下拉菜单或手动输入来修改时间
QDateTimeEdit编辑日期时间 ; 结合了QDateEdit和QTimeEdit的功能,允许用户选择日期和时间。用户可以通过下拉菜单或手动输入来修改日期和时间

下面是QDateTimeEdit的 核心属性:

属性描述方法
date当前编辑的日期部分setDate()
time当前编辑的时间部分setTime()
dateTime当前编辑的日期时间setDateTime()
calendarPopup是否显示日历弹出窗口setCalendarPopup()
timeSpec时间规格(本地时间或UTC)setTimeSpec()
displayFormat显示日期时间的格式setDisplayFormat()
minimumDateTime可编辑的最小日期时间setMinimumDateTime()
maximumDateTime可编辑的最大日期时间setMaximumDateTime()

核心信号:

信号描述
dateTimeChanged当用户修改了日期时间时发出此信号
dateChanged当用户修改了日期时发出此信号
timeChanged当用户修改了时间时发出此信号

2.2 使用(计算时间差值 / 间隔)

该例中,我们利用QDateTimeEdit计算两个时间的时间差值(差值以n天n时表示):

首先介绍后面会用到的函数:

daysTo() 与 secsTo()

方法名描述
daysTo()计算两个日期时间之间的天数差异,返回整数值。如果调用对象在参数对象之前,则返回负值。
secsTo()计算两个日期时间之间的秒数差异,返回整数值。如果调用对象在参数对象之前,则返回负值。

根据表格,可以知道:

  • dayTo()返回一个整数,表示两个日期之间相隔的天数,根据时刻计算,就算总时长不满24小时,依然算作一天;
  • 不满足我们要实现的精确到小时,所以这里使用secsTo()

  1. 图形化界面下进行如下布局:

在这里插入图片描述

  1. 封装一个计算时间差值的函数caculateTimeDiff(),点击按钮的槽函数调用该函数
// 计算时间差值
void Widget::calculateTimeDiff()
{
    //1. 获取两次时间
    QDateTime oldT = ui->dateTimeEdit_1->dateTime();
    QDateTime newT = ui->dateTimeEdit_2->dateTime();

    // 2. 计算差值 - 秒数
    int seconds = oldT.secsTo(newT);
    // 3. 将秒数转换为小时与天
    int hours = (seconds / 3600) % 24;
    int days = (seconds / 3600) / 24;
    // 4. 把计算结果 设置给label
    ui->label_output->setText("时间差值为: " + QString::number(days) + " 天 " + QString::number(hours) + "时");
}

void Widget::on_pushButton_clicked()
{
    calculateTimeDiff();
}

效果演示

请添加图片描述

2.3 资源文件

上述所涉及到的代码等资源文件在👇

QDateTimeEdit控件的使用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】结构体内存对齐详解

规则 1.第一个成员在结构体变量偏移量为0 的地址处,也就是第一个成员必须从头开始。 2.其他成员的偏移量为对齐数**(该成员的大小 与 编译器默认的一个对齐数 中的较小值)**的整数倍。 3.结构体总大小对最大对齐数(通过最大成员来确定)的整数…

【ArcPy】游标带条件遍历

示例展示 原始数据 搜索出来的 代码 import arcpy shppath r"C:\Users\admin\Desktop\excelfile\1.shp" with arcpy.da.SearchCursor(pointshp, ["SHAPEXY","class"], """"class" 0""") as cursor:f…

html5新增标签+css3新增标签

新增标签 一.html5新增标签1.语义化标签2.多媒体标签(1)视频video(2)音频audio3.总结 3.input属性![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f0795316d5f2418fb04e43e9af3e3a27.png#pic_center)4.表单属性![在这…

外贸业务员没客户的7大原因+解决办法!

业务员没有客户,就是无源之水,无本之木,这自然也就没有业绩。那些吃空饷的业务员,迟早会拖垮公司。所以不管是什么原因导致的业务员没客户,都要一一查验清楚。七个业务员没有客户的原因,七种对策&#xff0…

UE4 Niagara 关卡3.1官方案例解析二

自己尝试做做,打乱顺序 1、新建空的niagara system,添加空的发射器。更换渲染器为网格体渲染器并添加网格体。 2、发射器更新里面添加Spawn Rate,发射个粒子看看 效果图: 3、采样静态网格体,网格体粒子出生于静态网格…

光谱数据处理:4.七种预处理方法及其python实现

一、前言 光谱数据预处理是光谱分析中的一个重要环节,它的目的是通过一系列技术改善数据质量,以提高后续分析的准确性和可靠性。以下是几个常见的光谱数据预处理步骤: 基线校正(Baseline Correction):去除…

vue3 中 主题定制

vue3 中 主题定制 背景 做多主题定制,黑/白 ,里面还要再分各种颜色,每次进来都要记住上次的主题设置 效果图 一、目录结构 ├── generated │ ├── theme │ │ └── dark-yellow.ts │ │ └── dark-orange.ts │ │…

【ArcGIS】统计格网中不同土地利用类型占比

基于ArcGIS统计格网中不同土地利用类型占比 数据准备ArcGIS操作步骤1、创建渔网(Create Fishnet)2、建立唯一标识3、选择格网4、提取不同类别土地利用类型5、各类用地面积计算 参考另:可能出现的问题总结Q1:ArcGIS获取唯一值&…

HTTP 的 multipart 类型

上一篇文章讲到 http 的 MIME 类型 http MIME 类型 里有一个 multipart 多部分对象集合类型,这个类型 http 指南里有讲到:MIME 中的 multipart(多部分)电子邮件报文中包含多个报文,它们合在一起作为单一的复杂报文发送…

PHP设计模式初探 以前写的完整PPT!!!!!

幻灯片 1: 初探PHP设计模式 copyright CSDN 白毛大侠 幻灯片 2: 我们说别人代码写的烂&#xff0c;烂在哪&#xff1f; 反思我们平时是怎么写代码的&#xff1f; 非开发者如何转开发&#xff08;业务&#xff09; &#xff1f; 一.过程与对象 幻灯片 3: <?…

C语言学习笔记(二)

C语言学习 学习笔记(一) 学习笔记(二&#xff09; 文章目录 C语言学习一、C语言中的数据类型进制二进制八进制十六进制进制转换表 单位换算寻址 数据类型基本类型整数类型整数的有符号和无符号实数类型字符型 构造类型指针类型空类型总结 常量直接常量符号常量转义符 符号常量…

使用Xftp连接CentOS 7进行文件的传输

一、查看虚拟机IP地址 在虚拟机中打开终端输入 ifconfig &#xff1a; 我的虚拟机IP为192.168.23.131 二、打开XFtp 7连接虚拟机 其余设置为默认&#xff0c;点击连接后输入你的用户名和密码&#xff1a; 输入密码后弹出如下界面表示连接成功~ 三、传输文件 传输文件只需用鼠…

泰迪智能科技企业数据挖掘平台使用场景

企业数据挖掘平台助力企业数据挖掘&#xff0c;数据挖掘平台也在多个领域发挥着重要的作用。 企业数据挖掘平台具有数据抓取、数据清洗、数据分析、机器学习等多项功能&#xff0c;广泛应用于企业的各个领域&#xff0c;包括&#xff1a;金融行业、医疗行业、交通领域、教育、制…

每日一“类“:深入理解Qt的心脏《QObject》

Qt框架以其强大的跨平台能力和丰富的用户界面元素而广受开发者欢迎&#xff0c;而QObject类无疑是Qt框架心脏的所在。本文将深入探讨QObject&#xff0c;揭示其提供的核心功能以及如何在Qt项目中有效利用这个基类。 核心功能 信号与槽 Qt独特的信号与槽机制是其事件通信的基…

(C语言)函数详解上

&#xff08;C语言&#xff09;函数详解上 目录&#xff1a; 1. 函数的概念 2. 库函数 2.1 标准库和头文件 2.2 库函数的使用方法 2.2.1 sqrt 功能 2.2.2 头文件包含 2.2.3 实践 2.2.4 库函数文档的一般格式 3. 自定义函数 3.1 函数的语法形式 3.2 函数的举例 4. 形参和实参 4.…

每日一题——LeetCode1566.重复至少K次且长度为M的模式

方法一 暴力枚举 var containsPattern function(arr, m, k) {const n arr.length;for (let l 0; l < n - m * k; l) {let offset;for (offset 0; offset < m * k; offset) {if (arr[l offset] ! arr[l offset % m]) {break;}}if (offset m * k) {return true;}}r…

常用设计模式详解

设计模式 1.UML图 统一建模语言是用来设计软件的可视化建模语言。定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 1.1类图 1.1.1类的表示方式 在UML类图中&#xff0c;类使用包含类名、属性(field) 和方法(method) 且带有分割线…

[工具探索]-Gitlab的CI/CD操作

在 GitLab 中&#xff0c;CI&#xff08;持续集成&#xff09;是一项强大的功能&#xff0c;它允许你自动化构建、测试和部署你的代码。 在 GitLab CI/CD 中&#xff0c;.gitlab-ci.yml 文件是用于定义构建和部署流程的配置文件。它使用一种基于 YAML 的语法。 下面是一个简单…

2024年腾讯云部署幻兽帕鲁服务器,如何选择合适的服务器配置套餐畅玩游戏?

选择合适的服务器配置套餐以畅玩《幻兽帕鲁》游戏&#xff0c;首先需要考虑的是玩家数量和对服务器性能的需求。根据腾讯云提供的配置推荐&#xff0c;对于4到8人的玩家&#xff0c;推荐配置为4核16G12M&#xff1b;而10到20人的玩家则建议选择8核32G22M配置。这是因为《幻兽帕…

【C语言】文件及文件操作详解(fseek,ftell,rwind)

目录 1. 为什么使用文件 2. 什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 3. 二进制文件和文本文件 4. 文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 文件的打开和关闭 5. 文件的顺序读写 6.文件的随机读写 6.1 fseek 6.2 ft…