最近用到了QDateEdit,要对这个控件进行样式的设计,对于我这个新手来说,我属实是有点摸不着头脑,这个控件嵌套了几层。但是还是在谷歌上找到了一些代码,解决了这些个问题,可能百度上有类似的东西,我也是copy的,但是看着百度上搜到的简简单单的没有注释的代码,有点摸不着头脑,所以就想自己来分享一下,也是记录一下遇到的问题。
这个的样式表设计比较简单
/*正常状态*/
QDateEdit
{
background-color: rgba(0,0,255,1); /*背景颜色*/
color: rgba(255, 255, 255, 1); /*字体颜色*/
}
/*选中的状态*/
QDateEdit:focus
{
border-color: rgba(255,0,0,1); /*选中状态下,边框颜色*/
border-style: inset; /*选中状态下,边框的内容*/
border-width: 5; /*选中状态下,边框的宽度*/
}
样式表所对应的效果如下:
接下来是重头戏,展开的日历窗口
在QDateEdit的下拉日历就是这个控件,这个控件是由其他一些控件组成的,所以比较复杂。我主要是参考了几个博文,在这里首先感谢。
QSS QCalendarWidget,stylesheet-to-calender-popup,qcalendarwidget-how-to-highlight-dates
这几个都帮助我从这个QCalendarWidget的泥潭里面走出来,挺感谢的。
/*日历部分的背景颜色*/
#qt_calendar_calendarview {
background-color: rgba(10, 95, 189, 1); /*背景颜色*/
font: 16px; /*字体*/
}
/*这是日历部分的另外一个写法*/
QCalendarWidget QTableView
{
alternate-background-color:rgba(10, 95, 189, 1); /* day name/week number background */
color: rgba(255,255,255,1);
}
/*标题栏的样式*/
QCalendarWidget QWidget#qt_calendar_navigationbar
{
background-color: rgba(4, 51, 114, 1);
}
/*上一月的箭头的样式*/
QCalendarWidget QToolButton#qt_calendar_prevmonth
{
qproperty-icon: url(:/images/images/B.png);
}
/*下一月的箭头的图标*/
QCalendarWidget QToolButton#qt_calendar_nextmonth
{
qproperty-icon: url(:/images/images/A.png);
}
/*这里是激活的日期的样式也就是当前这个月*/
QCalendarWidget QAbstractItemView:enabled
{
font-size:24px;
color: rgb(255, 255, 255);
/* 这里是你选择一个日期时的样式,包括背景和字体颜色
selection-background-color: rgb(64, 64, 64);
selection-color: rgb(0, 255, 0); */
}
/*这里是其他月份的样式*/
QCalendarWidget QAbstractItemView:disabled
{
color: rgb(64, 64, 64);
}
这个可以修改周末的颜色
QTextCharFormat format = calendarWidget->weekdayTextFormat(Qt::Saturday);
format.setForeground(QBrush(Qt::white, Qt::SolidPattern));
calendarWidget->setWeekdayTextFormat(Qt::Saturday, format);
看官老爷如果仅仅想要知道怎么设置样式,那看到这就可以退出这篇文章了,因为下面,是我自己的一些碎碎叨叨。
这些话,写在2023-6-8,本来寻思着把之前的一些博客写的不好的,更新更新,写的不对的,纠正过来,不误人子弟。但是在改的过程中,看到之前刚开始接触Qt时,写的一些博客,感觉自己的博客内容写的很稚嫩,有些语句都很不通顺。特别是对一些Qt里的东西,描述的很浅显,都不准确。现在回头看,发现,
”轻舟已过万重山“,
工作了快三年了,回首往昔,都是靠自己硬学学过来的,写这些也没有太多含义。就是仅仅想对和我当初刚毕业,刚接触Qt的同学说一句:
一切的一切,只要坚持。最终,都会变好的。