qt 实现日历美化

举报
咚咚隆地咚 发表于 2022/09/22 10:01:01 2022/09/22
【摘要】 在qt 默认的日历样式中,它仅仅能满足我们的使用需求,但是在开发上,用户就不一定为它买单了,因此 需要进行日历的美化在这里我是用的是ui中拖出来的日历控件ui->dateEdit->setCalendarPopup(true);设置日历弹出 就是下面可以想平时使用的日历一样,可以自己选择时间和年份ui->dateEdit->setStyleSheet 通过这句实现日历 的简单美化,主要实现控...

在qt 默认的日历样式中,它仅仅能满足我们的使用需求,但是在开发上,用户就不一定为它买单了,因此 需要进行日历的美化

在这里我是用的是ui中拖出来的日历控件

ui->dateEdit->setCalendarPopup(true);

设置日历弹出 就是下面可以想平时使用的日历一样,可以自己选择时间和年份

ui->dateEdit->setStyleSheet 通过这句实现日历 的简单美化,主要实现控件的边框等等的美化。但是在弹窗设置需要进行下列的操作



 QTextCharFormat format;


    QColor color;

    color.setRgb(51,51,51,255);

    format.setForeground(color);

    QCalendarWidget * dateEditCalendarWidget = ui->dateEdit->calendarWidget();

    dateEditCalendarWidget->setWeekdayTextFormat(Qt::Saturday, format);

    dateEditCalendarWidget->setWeekdayTextFormat(Qt::Sunday, format);

    dateEditCalendarWidget->setFixedSize(246,317);


QTextCharFormat通过使用它来设置字体的颜色,在系统默认的弹框中,周六周日两列会默认用红色标注,如果不想让她变得那么显眼以及给他替换颜色,

setDateTextFormat(date, format) 这个函数就是用来设置周几的字体颜色,第一个参数是输入目标星期例如Qt::Saturday 可根据此以此类推,设置目标字体颜色。

dateEditCalendarWidget->findChildren<QWidget*>().value(0)->setCursor(Qt::PointingHandCursor);  它是用来设置在鼠标移动到弹窗的时候,将鼠标变成变成小手的形状



dateEditCalendarWidget->setLocale(QLocale::Chinese);


在系统默认的周数会显示周一到周日,如果不需要这样,仅仅显示一到七可以使用上面这两句话,但是注意的是一定要配合使用!



QSize s = QSize(32,32);

    QToolButton * toolbtn  = ui->dateEdit->calendarWidget()->findChild<QToolButton * >("qt_calendar_prevmonth");

    toolbtn->setIcon(QPixmap(":zuo.png"));

    toolbtn->setIconSize(s);

设置最上面前一个月后一个月按钮的图片以及它的大小。 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"); 用预设显示的样式,可以通过自己的需求进行修改。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。