Qt QDateEdit下拉日历的样式设计

QDateEdit样式设计

最近用到了QDateEdit,要对这个控件进行样式的设计,对于我这个新手来说,我属实是有点摸不着头脑,这个控件嵌套了几层。但是还是在谷歌上找到了一些代码,解决了这些个问题,可能百度上有类似的东西,我也是copy的,但是看着百度上搜到的简简单单的没有注释的代码,有点摸不着头脑,所以就想自己来分享一下,也是记录一下遇到的问题。

QDateEdit

这个的样式表设计比较简单

/*正常状态*/
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;					/*选中状态下,边框的宽度*/
}

样式表所对应的效果如下:

在这里插入图片描述
在这里插入图片描述

接下来是重头戏,展开的日历窗口

QCalendarWidget

在QDateEdit的下拉日历就是这个控件,这个控件是由其他一些控件组成的,所以比较复杂。我主要是参考了几个博文,在这里首先感谢。

QSS QCalendarWidgetstylesheet-to-calender-popupqcalendarwidget-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的同学说一句:

一切的一切,只要坚持。最终,都会变好的。😁

  • 19
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值