QCalendarWidget qss样式设置
在Qt项目中为了实现不同的样式,于是把所有控件的样式都写为QSS文件中,遇到了QCalendarWidget一脸懵逼
QCalendarWidget的是有好几个控件组成的,那么为了设置其样式表,只要分别设置的组成其的所有控件的样式即可搞定,
为了获取每个控件的objectName 有两种方式,1.通过源码,找到QCalendarWidget的源文件,如果在安装Qt时,选择安装了源码,可以找到每个控件的名称,2.如果没有安装源码,还有一种方式,通过循环打印出QCalendarWidget的里面的控件:
(object->metaObject()->className()) //类名
(object->objectName());
//类名对应的控件别名,如果object有子类,则QObjectList list = object->children();循坏输出下,从而得到所有的控件类名和对应别名,然后分别设置其样式,函数得详细内容,可以参考下面这位作者的博客:
https://qtdebug.com/qtbook-qss-calendar/
下面附上从一个Qt centre http://www.qtcentre.org/threads/30478-How-To-Change-Style-Sheet-for-QCalendarWidget()里面找到的一个样式例子以供参考:
/* navigation bar */ QCalendarWidget QWidget#qt_calendar_navigationbar { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop: 0 #cccccc, stop: 1 #333333); } QCalendarWidget QToolButton { height: 60px; width: 150px; color: white; font-size: 24px; icon-size: 56px, 56px; background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop: 0 #cccccc, stop: 1 #333333); } QCalendarWidget QMenu { width: 150px; left: 20px; color: white; font-size: 18px; background-color: rgb(100, 100, 100); } QCalendarWidget QSpinBox { width: 150px; font-size:24px; color: white; background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop: 0 #cccccc, stop: 1 #333333); selection-background-color: rgb(136, 136, 136); selection-color: rgb(255, 255, 255); } QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width:65px; } QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width:65px;} QCalendarWidget QSpinBox::up-arrow { width:56px; height:56px; } QCalendarWidget QSpinBox::down-arrow { width:56px; height:56px; } /* header row */ QCalendarWidget QWidget { alternate-background-color: rgb(128, 128, 128); } /* normal days */ QCalendarWidget QAbstractItemView:enabled { font-size:24px; color: rgb(180, 180, 180); background-color: black; selection-background-color: rgb(64, 64, 64); selection-color: rgb(0, 255, 0); } /* days in other months */ QCalendarWidget QAbstractItemView:disabled { color: rgb(64, 64, 64); }
原文链接:https://blog.csdn.net/u010311553/article/details/80705268