QDateEdit美化(本片内容复制: https://blog.csdn.net/lycx1234/article/details/98883608?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-9&spm=1001.2101.3001.4242)
1. QDateEdit控件显示日历,需要用下面的setCalendarPopup(true);
ui.dateEdit->setCalendarPopup(true);
2. 日历样式的修改需要用到QCalendarWidget控件。其样式的调整可以在QSS中调整。
下面就图中的标记进行说明:
1)左右两边的箭头,是用代码实现的。
QToolButton *prevBtn = calendar->findChild<QToolButton*>(QLatin1String("qt_calendar_prevmonth"));
QToolButton *bextBtn = calendar->findChild<QToolButton*>(QLatin1String("qt_calendar_nextmonth"));
prevBtn->setIcon("你自己的图标");
bextBtn->setIcon("你自己的图标");
"qt_calendar_prevmonth"名字是查看源码知道的
2. 中间白色部分
QCalendarWidget QTableView
{
alternate-background-color: rgb(128, 128, 128); //颜色自己可以改
}
3. 背景色
QCalendarWidget QTableView
{
alternate-background-color: rgb(128, 128, 128); //颜色自己可以改
background-color: #2F2F3E;
}
4和5. 月份 和年份
QToolButton#qt_calendar_monthbutton,#qt_calendar_yearbutton{
color: #9ea5a9; //修改字体颜色
font: 9pt simHei; //也可以修改字体
}
6. 显示月份和年份所在的导航
QCalendarWidget QWidget#qt_calendar_navigationbar{
background-color: #2F2F3E;//这个一般设置渐变色比较多,可以自行修改
}
样式设置:
QString style = "QDateEdit{border: 1px solid #FFFFFF;border-radius: 3px;}"
"QDateEdit:hover{border: 1px solid #C0C4CC;}"
"QDateEdit::drop-down{"
"width: 15px;image: url(:/image/image/calendar.png);}"
"QCalendarWidget QWidget#qt_calendar_navigationbar{"
"background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 #313947, stop: 1 #34375E);}"
"QCalendarWidget QToolButton{"
"color: white;background-color: rgba(255, 255, 255, 0);}"
"QCalendarWidget QToolButton#qt_calendar_prevmonth{"
"qproperty-icon: url(:/image/image/calendar_pre_month.png);}"
"QCalendarWidget QToolButton#qt_calendar_nextmonth{"
"qproperty-icon: url(:/image/image/calendar_next_month.png);}"
"QCalendarWidget QSpinBox::up-button{"
"image: url(:/image/image/calendar_pre_year.png);"
"background-color: rgba(255, 255, 255, 100);"
"width:15px;}"
"QCalendarWidget QSpinBox::up-button:hover{"
"background-color: rgba(215, 218, 223, 100);}"
"QCalendarWidget QSpinBox::down-button{"
"image: url(:/image/image/calendar_next_year.png);"
"background-color: rgba(255, 255, 255, 100);"
"width:15px;}"
"QCalendarWidget QSpinBox::down-button:hover{"
"background-color: rgba(215, 218, 223, 100);}";