【qt】日历和定时器

日历和定时器

  • 一.Calendar Widget(日历组件)
    • 1.日历的基本使用
  • 二.定时器
    • 1.定时器的用处
    • 2.创建一个定时器
    • 3.设置定时器时间间隔
    • 4.设置定时器类型
    • 5.超时信号
    • 6.关联定时器
    • 7.启动定时器
    • 8.关闭定时器
    • 9.定时器要执行功能
  • 三.总结一下:

一.Calendar Widget(日历组件)

1.日历的基本使用

我们还是来结合小的案例,来进行边做边学;
目标图:
在这里插入图片描述

话不多说,直接来拖放
日历组件用Calender Widget
加一个格栅布局和垂直布局
在这里插入图片描述
可以将line Edit的可写关上
在这里插入图片描述
来,咱们开始先对日期转到槽:
用这个信号
在这里插入图片描述
得到日期,然后转到字符串,设置到line Edit,date可以直接设置到日历中

void Dialog::on_dateEdit_userDateChanged(const QDate &date)
{
    QString ret=date.toString("yyyy年M月dd日");
    ui->lineEdit->setText(ret);
    ui->calendarWidget->setSelectedDate(date);
}

运行结果:
在这里插入图片描述
接下来,我们开始对calendar Widget去使用信号槽!

用这个信号,日历选择改变就发出信号
在这里插入图片描述
代码:
可以用selectedDate来拿出日历。

void Dialog::on_calendarWidget_selectionChanged()
{
    QDate date=ui->calendarWidget->selectedDate();
    ui->dateEdit->setDate(date);
    QString ret=date.toString();
    ui->lineEdit->setText(ret);
}

运行结果:
在这里插入图片描述
因为line Edit 需要的是QString 所以要对Date转字符串哦。

二.定时器

1.定时器的用处

就是当我们需要每隔一段时间进行一次操作的时候,我们可以使用定时器。

2.创建一个定时器

首先我们来创建一个定时器,需要头文件 < QTimer >

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QTimer>//定时器的头文件

QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACE

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();

private:
    Ui::Dialog *ui;
    QTimer* timer;//这里是定时器
};
#endif // DIALOG_H

在dialog.cpp中:

timer=new QTimer;//创建定时器

3.设置定时器时间间隔

定时器是每隔一段时间进行操作,那我们间隔多少时间,需要我们自己来定义。

timer->setInterval(500);//是以ms为单位

4.设置定时器类型

定时器有3种类型:
在这里插入图片描述
我们一般用粗糙定时器:

timer->setTimerType(Qt::CoarseTimer);//设置为粗糙定时器

5.超时信号

定时器有自己的一个信号就是timeout间隔时间一到,就会发出信号。

6.关联定时器

自己先添加一个槽函数,就是定时器时间一到要执行的操作。

connect(timer,SIGNAL(timeout()),this,SLOT(onTimeout()));

onTimeout是自己定义的槽函数哦,要加slots

private slots:
void onTimeout();

7.启动定时器

我们的想法是点击启动定时器就启动,进度条就开始移动,到了100又设置为0重新移动,暂停定时器就关闭。
拖放:
在这里插入图片描述
对启动按钮转到槽:

void Dialog::on_pushButtonStart_clicked()
{
    timer->start();//打开定时器
}

8.关闭定时器

对暂停案例转到槽:

void Dialog::on_pushButtonEnd_clicked()
{
    timer->stop();//停止定时器
}

9.定时器要执行功能

其实就是槽函数

void Dialog::onTimeout()
{
    int value=ui->progressBar->value()+1;
    if(value>100)
    {
        value=0;
    }
    ui->progressBar->setValue(value);
}

运行结果:
在这里插入图片描述
可惜不会动态的截图,你们可以自己去玩玩,感觉挺牛逼的。

三.总结一下:

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

    timer=new QTimer;//创建定时器
    timer->setInterval(500);//是以ms为单位
    timer->setTimerType(Qt::CoarseTimer);//设置为粗糙定时器

    connect(timer,SIGNAL(timeout()),this,SLOT(onTimeout()));

}

对于定时器来言,主要是创建 设置间隔时间 和 类型 还有就是关联

永远相信美好的事情即将来临!

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

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

相关文章

亚马逊调整退货处理费,卖家如何应对新挑战?

在电子商务领域&#xff0c;退货处理一直是一个重要且复杂的问题。作为全球最大的电子商务平台之一&#xff0c;亚马逊一直在寻求优化退货处理流程&#xff0c;以平衡消费者满意度和运营成本。近日&#xff0c;亚马逊宣布自2024年6月1日起&#xff0c;将对退货处理费收取标准进…

ATFNet:长时间序列预测的自适应时频集成网络

ATFNet是一个深度学习模型&#xff0c;它结合了时间域和频域模块来捕获时间序列数据中的依赖关系。引入了一种新的加权机制来调整周期性的权重&#xff0c;增强了离散傅立叶变换&#xff0c;并包括一个复杂关系识别的注意力机制&#xff0c;在长期时间序列预测中优于当前方法(每…

一休:一款专业的休息提醒软件

对于长期使用电子产品的人来说&#xff0c;保护眼睛至关重要&#xff0c;不论是工作还是学习&#xff0c;适当的休息都是必要的&#xff0c;保护视力要牢记20-20-20法则&#xff0c;眼科医生陶勇也科普过&#xff1a; 使用电脑工作和学习时&#xff0c;容易会忘记时间&#x…

Maven 依赖排查

先从项目去看显而易见&#xff0c;假如我们有一个项目&#xff0c;父工程中包含一些子工程&#xff0c;如下&#xff1a; 我们想看一下samples-account中的依赖关系&#xff0c;那么我们可以打开 samples-account的pom文件&#xff0c;查看其maven依赖关系图。 我们可以看到此项…

WPS如何把多个表格合并到一个表格里面?

注意&#xff1a;此功能需要wps会员。 例如&#xff1a;这里有3个表格。 现在希望合并3个表格到一起&#xff0c;如下图所示。 新建一个表格&#xff0c;打开表格。 选择 开始->工作表->合并表格->整合成为一个工作薄。 弹出对话框&#xff0c;选择添加文件&#xff…

JETBRAINS IDES 分享一个2099通用试用码,支持一键升级!DataGrip 2024 版

文章目录 废话不多说上教程&#xff1a;&#xff08;动画教程 图文教程&#xff09;一、动画教程激活 与 升级&#xff08;至最新版本&#xff09; 二、图文教程 &#xff08;推荐&#xff09;Stage 1.下载安装 toolbox-app&#xff08;全家桶管理工具&#xff09;Stage 2 : 下…

AndroidStudio集成高德地图后出现黑屏并报错

报错内容为&#xff1a;No implementation found for void com.autonavi.base.ae.gmap.GLMapEngine.nativeMainThreadTrigger(int, long) (tried Java_com_autonavi_base_ae_gmap_GLMapEngine_nativeMainThreadTrigger and Java_com_autonavi_base_ae_gmap_GLMapEngine_nativeM…

最佳解决Maven同一依赖多版本共存问题,重复依赖(同一个jar包,多个版本)-maven-shade-plugin

先看链接:原文链接 参照原文链接生成的文件(下面是我放的位置) mvn指令 mvn install:install-file -DfileD:\mavenrepository/maven-shade.jar -DgroupIdcom.wj -DartifactIdmaven-shade -Dversion1.1 -Dpackagingjar如果配置了maven_home 和java_home可以任意打开cmd执行(…

Linux-软件安装--tomcat的安装

tomcat的安装 1、下载tomcat安装包2.移动到自己想要解压的目录3、解压文件夹4、启动tomcat5、查看tomcat进程6、查看日志7、通过浏览器访问成功8、停止tomecat服务8.1运行tomcat的bin目录中提供的停止服务的脚本文件shutdcwn.sh8.2结束tomcat进程1、下载tomcat安装包 本篇文章…

Vue原理学习:vdom 和 diff算法(基于snabbdom)

vdom 和 diff 背景 基于组件化&#xff0c;数据驱动视图。只需关心数据&#xff0c;无需关系 DOM &#xff0c;好事儿。 但是&#xff0c;JS 运行非常快&#xff0c;DOM 操作却非常慢&#xff0c;如何让“数据驱动视图”能快速响应&#xff1f; 引入 vdom 用 vnode 表示真实…

邮件API接口的优势有哪些?如何有效整合?

邮件API怎么选&#xff1f;SendCloud与AokSend的性能对比分析&#xff1f; 邮件API接口作为企业与用户沟通的重要桥梁&#xff0c;其重要性不言而喻。Aok将深入探讨邮件API接口的优势、有效整合的方法、选择标准以及SendCloud与AokSend两款邮件发送服务的性能对比分析。 邮件…

这10款安卓APP,简直好用到爆!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频http://AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频 1.追书——追书神器 追书神器是小说追新大神&#xff0c;全网实…

【大模型微调】一文掌握7种大模型微调的方法

本篇文章深入分析了大型模型微调的基本理念和多样化技术&#xff0c;细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景&#xff0c;使得读者可以依据特定的应用要求和计算资源限…

Jquery+Servlet+JDBC实现登录注册功能

前端部分 HTMLCSS部分 引入JQuery包和JQuery.cookie包&#xff0c;前者封装了DOM操作的一些方法&#xff0c;后者封装了对cookie的操作 我们使用cookie主要是为了做登录后页面的跳转时&#xff0c;能存下来这个用户是谁&#xff0c;这样后面可以对单一用户进行操作&#xff…

使用API有效率地管理Dynadot域名,默认将域名隐形转发至其他界面

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

webpack优化构建速度示例-resolve.extensions:

当项目不仅仅包含.js或.json文件&#xff0c;还包含其他类型文件(如.ts、.vue、.css)作为模块时&#xff0c;配置resolve.extensions可以不必要的文件搜索提高性能。 src/index.ts import { someFuction } from ./modulesomeFuction()src/module.tsimport {otherSomeFuction} f…

三分钟快速上手SpringSecurity框架

导入依赖框架 web 框架(spring-boot-starter-web) <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> springSecurity 框架(spring-boot-starter-security) <de…

【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置

本节博客主要是通过“在排序数组中查找元素的第一个和最后一个位置”总结关于二分算法的左右界代码模板&#xff0c;有需要借鉴即可。 目录 1.题目2.二分边界算法2.1查找区间左端点2.1.1循环条件2.1.2求中点的操作2.1.3总结 2.2查找区间右端点2.1.1循环条件2.1.2求中点的操作2.…

vue框架学习--表单校验

在使用 Element UI&#xff08;一个常见的 Vue UI 组件库&#xff09;&#xff0c;要给 添加表单验证&#xff0c;Element UI 的表单验证通常通过 Form 和 FormItem 组件以及它们的 rules 属性来实现。下面是一个例子&#xff0c;展示如何给联系人字段添加表单验证&#xff1a;…

网页打开:为什么国内用新标签页,国外用当前页?

想写这个话题很久了&#xff0c;因为用百度和Google搜索时&#xff0c;打开搜索结果链接时的交互差异&#xff0c;几乎每天都要提醍我一下。 网页打开——这个交互&#xff0c;在设计里&#xff0c;算是极微小&#xff0c;但影响极广泛的操作设计。甚至&#xff0c;因此形成了…