qt 实现日历美化
前言
在 qt 默认的日历样式中,它仅仅能满足我们的使用需求,但是在开发上,用户就不一定为它买单了,因此 需要进行日历的美化
在这里我是用的是 ui 中拖出来的日历控件
ui->dateEdit->setCalendarPopup(true);
设置日历弹出 就是下面可以想平时使用的日历一样,可以自己选择时间和年份
ui->dateEdit->setStyleSheet
通过这句实现日历 的简单美化,主要实现控件的边框等等的美化。但是在弹窗设置需要进行下列的操作
QTextCharFormat 通过使用它来设置字体的颜色,在系统默认的弹框中,周六周日两列会默认用红色标注,如果不想让她变得那么显眼以及给他替换颜色,setDateTextFormat(date, format) 这个函数就是用来设置周几的字体颜色,第一个参数是输入目标星期例如 Qt::Saturday 可根据此以此类推,设置目标字体颜色。
dateEditCalendarWidget->findChildren<QWidget*>().value(0)->setCursor(Qt::PointingHandCursor);
它是用来设置在鼠标移动到弹窗的时候,将鼠标变成变成小手的形状
在系统默认的周数会显示周一到周日,如果不需要这样,仅仅显示一到七可以使用上面这两句话,但是注意的是一定要配合使用!
设置最上面前一个月后一个月按钮的图片以及它的大小。 qt_calendar_prevmonth 代表的是前一个月的按钮,qt_calendar_nextmonth 代表的是后一个月的按钮
ui->dateEdit->calendarWidget()->setStyleSheet()
开始设置下拉框的样式"QCalendarWidget{}" 用预设值整个窗体的样式"QCalendarWidget QAbstractItemView:enabled 用于设置窗体中不用时的样式"QCalendarWidget QToolButton{}" 用于设置工具栏的样式ui->dateEdit->setDate(QDate::currentDate());
设置默认显示为当前的日期
ui->dateEdit->setDisplayFormat("yyyy-MM-dd");
用预设显示的样式,可以通过自己的需求进行修改。
版权声明: 本文为 InfoQ 作者【用户10086】的原创文章。
原文链接:【http://xie.infoq.cn/article/5d443534c025695c786a270cd】。文章转载请联系作者。
评论