QT日历制作

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: QT日历制作

前言

在 Qt 中,QCalendar 类是提供日历功能的类。它用于操作和管理日期和时间信息,包括日期计算、日期格式化和解析,以及日期的比较和操作。


一、QCalendar 类介绍

QCalendar 类提供了以下主要功能:

  1. 日期和时间计算:QCalendar 具有一组强大的函数,用于执行常见的日期和时间计算操作,例如添加或减去天数、月份、年份,计算两个日期之间的天数差等。
  2. 日期和时间格式化:可以使用 QCalendar 定义日期和时间的格式。通过设置格式模板,可以根据需要以各种方式呈现日期和时间信息。例如,可以格式化日期为 “yyyy-MM-dd” 的形式,以显示年份、月份和日期。
  3. 日期和时间解析:你可以使用 QCalendar 将字符串解析为日期和时间对象。使用日期和时间解析功能,可以将字符串转换为 QDateTime 对象,以进行后续的日期和时间操作。
  4. 日期比较和操作:QCalendar 提供了用于比较和操作日期的函数。可以检查两个日期是否相等、比较两个日期的顺序(早于、晚于或相等)、计算两个日期之间的时间间隔等。
  1. 周和月信息:QCalendar 可以提供关于特定日期所属的周和月的信息。可以获取给定日期所在的周数、月份等信息。

效果展示:

二、界面布局

可以在 ui 设计师的界面进行布局。

可以看到 整个 ui 界面只通过三个控件来组成。可以使用布局管理器来进行排列布局,会显示的更整齐。

  • Calendar Widget : 日历控件。
  • label :标题栏部件,可以用来填充图片,文字。

三、代码讲解

1. lable 添加图片

首先我们需要添加一个资源文件,用来存放将要添加的图片。这个在我之前的文章中详细的介绍过,可以参考:Qt 制作小程序登录系统(超详细) 的 第 二 点 。

/* lable 添加图片 */
QPixmap pixmap(":/icon/calendar.jpg");    //添加图片路径
ui->label->setScaledContents(true);     //启用图像的自动缩放。
ui->label->setPixmap(pixmap);       // 设置标签控件的图片

QPixmap 是 Qt 中用于处理图像的类。它表示一个可用于显示的图像。

2. 设置主窗口背景色

/* 设置主窗口背景色 */
QPalette palette1;
palette1.setBrush(backgroundRole(), QBrush(QColor("#F5DEB3")));       //设置调色板的背景色
setPalette(palette1);           //设置部件(窗口)的调色板

QPalette 是 Qt 中用于管理调色板的类。它用于管理窗口及其控件的颜色和外观属性.

backgroundRole() 是一个 QPalette::ColorRole 枚举值,表示背景色角色。它用于指定要设置的调色板元素。


3. 日历显示改变网格线颜色

/* true 显示网格线 */
ui->calendarWidget->setGridVisible(true);     

可以通过 样式表 改变网格的颜色。(要改变网格颜色前需要设置网格可显示)

也可以通过样式表设置 日历的文字字体,大小。

4. 显示表头日期

效果 : 当我们点击日历的某天时,在上面的 label 中会显示当前选中的时间。

当 用户选择了不同的日期时,将触发 selectionChanged( ) 信号,这样就可以设置槽函数来处理。

/* 建立连接 */
connect(ui->calendarWidget,SIGNAL(selectionChanged()),this,SLOT(showSelectedData()));
/* 槽函数 */
void Widget::showSelectedData()     // 显示表头日期
{
  //获取 calendarWidget 当前选择的日期,并将其以字符串的形式按照指定的格式转换为 “yyyy-MM-dd” 的形式
    ui->m_label->setText(ui->calendarWidget->selectedDate().toString("yyyy-MM-dd"));
}
// 水平对齐方式设置为居中
 ui->m_label->setAlignment(Qt::AlignHCenter);

总结

有不懂的 或者 想要详细代码的 可以点赞私信我。

相关文章
|
7月前
|
C++
基于Qt的简易桌面日历设计与实现
基于Qt的简易桌面日历设计与实现
301 1
|
7月前
【qt】日历和定时器
【qt】日历和定时器
88 0
QT桌面项目(日历程序)
QT桌面项目(日历程序)
120 0
Python Qt GUI设计:QCalendar日历类和QDateTimeEdit时间类(基础篇—20)
Python Qt GUI设计:QCalendar日历类和QDateTimeEdit时间类(基础篇—20)
Python Qt GUI设计:QCalendar日历类和QDateTimeEdit时间类(基础篇—20)
|
Shell 程序员
Qt编写自定义控件65-光晕日历
一、前言 操作系统的更新迭代速度非常快,基本上三五年就有个新版本出来,WIN10操作系统还是一个比较成功的系统,据说现在市场份额越来越大,XP的份额已经很小,WIN7的份额也在逐步减少,在最新的WIN10系统中,右下角有个日历控件,还是自带农历的,这个本地化做的蛮好的,鼠标移上去还有光晕背景效果,体验非常赏心悦目,于是打算用Qt也高仿一个。
1506 0
|
5月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
199 1
|
4月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
118 0
|
3月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
3月前
|
4月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
206 2