当前位置: 首页 > news >正文

【Qt开发】显示类控件(四)-> QCalendarWidget

目录

1 -> 概述

2 -> 核心属性

3 -> 重要信号

4 -> 视觉设计

5 -> 功能特性

5.1 -> 定制化能力

6 -> 代码示例:获取选中的日期

7 -> 总结


1 -> 概述

QCalendarWidget 是 Qt 框架中一个功能强大且直观的日期选择控件,它为应用程序提供了美观且用户友好的日历界面。这个组件封装了完整的日历功能,允许用户轻松查看、选择和导航日期,是许多桌面应用程序中不可或缺的UI元素。

QCalendarWidget 默认呈现为一个月视图,清晰展示当前月份的日期布局。其设计遵循用户熟悉的传统日历格式,顶部显示周几的缩写(如Mon、Tue),并以不同颜色区分工作日和周末。当前日期会有明显的视觉突出,而所选日期则通过高亮背景色标识,提供直观的视觉反馈。

控件顶部包含导航元素,用户可以通过左右箭头按钮逐月浏览,也可以直接点击月份名称从弹出菜单中选择特定月份,或点击年份数字进行年份的快速选择。这种多层级的导航设计既满足了精确跳转的需求,也支持快速浏览。

2 -> 核心属性

属性说明
selectDate当前选中的日期
minimumDate最小日期
maximumDate最大日期
firstDayOfWeek每周的第一天(也就是日历的第一列)是周几
gridVisible是否显示表格的边框
selectionMode是否允许选择日期
navigationBarVisible日历上方标题是否显示
horizontalHeaderFormat日历上方标题显示的日期格式
verticalHeaderFormat日历第一列显示的内容格式
dateEditEnabled是否允许日期被编辑

3 -> 重要信号

信号说明
selectionChanged(const QDate&)当选中的日期发生改变时发出
activated(const QDate&)当双击一个有效的日期或者按下回车键时发出,形参是一个 QDate 类型,保存了选中的日期
currentPageChanged(int, int)当年份月份改变时发出,形参表示改变后的新年份和月份

4 -> 视觉设计

QCalendarWidget 默认呈现为一个月视图,清晰展示当前月份的日期布局。其设计遵循用户熟悉的传统日历格式,顶部显示周几的缩写(如Mon、Tue),并以不同颜色区分工作日和周末。当前日期会有明显的视觉突出,而所选日期则通过高亮背景色标识,提供直观的视觉反馈。

控件顶部包含导航元素,用户可以通过左右箭头按钮逐月浏览,也可以直接点击月份名称从弹出菜单中选择特定月份,或点击年份数字进行年份的快速选择。这种多层级的导航设计既满足了精确跳转的需求,也支持快速浏览。

5 -> 功能特性

QCalendarWidget 提供了丰富的内置功能。它支持单选和多选模式,开发者可以根据需要配置选择行为。控件允许设置最小和最大日期范围,限制用户只能选择特定范围内的日期,这对于需要日期约束的应用场景非常实用。

该组件还支持多种显示选项,可以配置为显示周数(ISO标准),让用户能够看到每年的周编号。此外,开发者可以自定义每周的第一天(如周一或周日),适应不同地区的习惯。

5.1 -> 定制化能力

QCalendarWidget 的一个显著优势是其高度的可定制性。通过 Qt 的样式表机制,开发者可以轻松改变控件的外观,调整颜色、字体、边框等视觉属性,使其与应用程序的整体设计语言保持一致。

对于更高级的定制需求,开发者可以继承 QCalendarWidget 类并重写其绘制方法,实现完全自定义的日期单元格渲染。这使得能够在日历中添加特殊标记、图标或其他视觉元素,满足诸如任务管理、事件提醒等特定应用场景的需求。

6 -> 代码示例:获取选中的日期

1. 在界面上创建一个 QCalendarWidget 和一个 QLabel

objectName 为默认

2. 给 QCalendarWidget 添加 slot 函数

#include "widget.h"
#include "ui_widget.h"#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_calendarWidget_selectionChanged()
{QDate date = ui->calendarWidget->selectedDate();qDebug() << date;ui->label->setText(date.toString());
}

3. 执行程序,可以看到当选择不同的日期时,label 中的内容就会随之改变

7 -> 总结

QCalendarWidget 是 Qt 提供的一个成熟、功能全面的日期选择解决方案,它平衡了开箱即用的便利性与高度可定制的灵活性。无论是快速原型开发还是需要精细调优的商业应用,QCalendarWidget 都能提供可靠的日期选择功能,极大地简化了开发过程,同时确保最终用户获得一致且愉悦的体验。


感谢各位大佬支持!!!

互三啦!!!


文章转载自:

http://grG3lYvv.tdnbw.cn
http://TF1JtCUw.tdnbw.cn
http://gOpcWFqu.tdnbw.cn
http://m3P9RYHe.tdnbw.cn
http://ERPIeRdO.tdnbw.cn
http://fUE8xfOI.tdnbw.cn
http://mK8jHceV.tdnbw.cn
http://Y1AuA3ri.tdnbw.cn
http://a4mLTWMC.tdnbw.cn
http://DAoBL5Ds.tdnbw.cn
http://qWueQ5wB.tdnbw.cn
http://YxQLwTCf.tdnbw.cn
http://jhFiTO7H.tdnbw.cn
http://whlo48OX.tdnbw.cn
http://WPty0EpJ.tdnbw.cn
http://hLGTk6uk.tdnbw.cn
http://c31uChrs.tdnbw.cn
http://thyBw11Z.tdnbw.cn
http://NlqD8vCA.tdnbw.cn
http://RuUDv3il.tdnbw.cn
http://4ijaZWg8.tdnbw.cn
http://kS0EQedU.tdnbw.cn
http://dJOlYHy5.tdnbw.cn
http://LrTtszAZ.tdnbw.cn
http://zn5QepJc.tdnbw.cn
http://4sUzzPMn.tdnbw.cn
http://3LIrM3yg.tdnbw.cn
http://PcZlpngk.tdnbw.cn
http://TlAuXRrA.tdnbw.cn
http://U83SD9jQ.tdnbw.cn
http://www.dtcms.com/a/387365.html

相关文章:

  • 【K8S系列】Kubernetes 调度与资源管理深度剖析:Requests、Limits、QoS 与 OOM
  • 小程序地图以及讲解的使用
  • 单分类线性逻辑回归
  • 使用POSTMAN 创建泛微OA流程
  • vscode中配置pytest
  • 液氮低温恒温器的应用领域
  • [Yolo遇到的问题] 使用VScode进行ultralytics训练 启动后在scanning阶段意外中断 导致训练无法正常启动
  • 微算法科技(NASDAQ:MLGO)研究分布式量子计算,释放量子计算潜能
  • 使用EasyExcel读不到数据的低级问题
  • 万象EXCEL开发(一)表头标尺搭建—东方仙盟筑基期
  • Redis 发展趋势与 Redis 7.x 新特性:从缓存到实时数据平台的演进
  • 微信小程序 tabBar 切换实现
  • 微信小程序的跳转方式
  • 微信小程序---暮之沧蓝音乐小程序
  • springboot jar包部署到服务器上后,logback按日期归档不正确,今天的日志归档到昨天了,日志中的时间也不正确
  • Spring Boot Logback 日志配置详解:从基础到分布式追踪
  • 辉视养老方案:重塑老年生活的温馨与安心
  • 通过商业智能(BI)可视化数据分析了解布洛芬的产销情况
  • 健康大数据专业能转行做医疗数据分析吗?
  • antiword为什么在ubuntu22.04上面不乱码,而在mac上出现乱码
  • Paperless-ngx v2.18.4在Ubuntu 24.04上的完整离线安装步骤(非Docker)
  • Ubuntu 18.04 搭建 Kubernetes 1.27.4 集群全流程(附问题排查)
  • Ubuntu 18.04 LTS 安装 6.10.10 内核
  • Windows 11 下使用 WSL2 安装 Ubuntu 22.04 步骤
  • 在 WSL 中通过 Bash 函数快速转换 Windows 路径为 Ansible/WSL 路径
  • 【ubuntu24.04】 nvidia-smi监控GPU 利用率
  • 《嵌入式硬件(十四):基于IMX6ULL的通用目的定时器(GPT)操作》
  • 鸿蒙Next Web调试与维测全攻略:从DevTools到专项测试
  • 基于运行设计域(ODD)的安全论证方法
  • 鸿蒙HarmonyOS界面开发-组件动态创建(一)