2.7 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			2.7 KiB
		
	
	
	
	
	
	
	
参考项目
https://blog.csdn.net/liang19890820/article/details/50557240 https://www.cnblogs.com/feiyangqingyun/p/3915657.html
QSS模板网站:https://qss-stock.devsecstudio.com/
技巧
Qt内置图标封装在QStyle中,大概七十多个图标,可以直接拿来用。
- SP_TitleBarMenuButton,
 - SP_TitleBarMinButton,
 - SP_TitleBarMaxButton,
 - SP_TitleBarCloseButton,
 - SP_MessageBoxInformation,
 - SP_MessageBoxWarning,
 - SP_MessageBoxCritical,
 - SP_MessageBoxQuestion,
 
配色
ElementUI配色:https://element.eleme.cn/#/zh-CN/component/color
Brand Color #409EFF
辅助色:
- Success#67C23A
 - Warning#E6A23C
 - Danger#F56C6C
 - Info#909399
 
基础色:
- 主要文字#303133
 - 常规文字#606266
 - 次要文字#909399
 - 占位文字#C0C4CC
 - 一级边框#DCDFE6
 - 二级边框#E4E7ED
 - 三级边框#EBEEF5
 - 四级边框#F2F6FC
 
边框
- 实线 1px
 - 虚线 2px
 
圆角
- 无圆角border-radius: 0px
 - 小圆角border-radius: 2px
 - 大圆角border-radius: 4px
 - 圆形圆角border-radius: 30px
 
投影
- 基础投影 box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)
 - 浅色投影 box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1)
 
QSS设置函数
feiyangqingyun-QWidgetDemo-master/FlatUI
使用函数的方式来生成QSS代码与设置对应的控件。
QString BRUI::setPushButtonQss(QPushButton *btn, int radius, int padding,const QString &normalColor,const QString &normalTextColor,const QString &hoverColor,const QString &hoverTextColor,const QString &pressedColor,const QString &pressedTextColor)
{
    QStringList list;
    list.append(QString("QPushButton{border-style:none;padding:%1px;border-radius:%2px;color:%3;background:%4;}").arg(padding).arg(radius).arg(normalTextColor).arg(normalColor));
    list.append(QString("QPushButton:hover{color:%1;background:%2;}").arg(hoverTextColor).arg(hoverColor));
    list.append(QString("QPushButton:pressed{color:%1;background:%2;}").arg(pressedTextColor).arg(pressedColor));
    QString qss = list.join("");
    if(btn)
        btn->setStyleSheet(qss);
    return qss;
}
可以参考的UI工程
QSS生成工具:StyleDemo。
给QWidget添加属性来控制样式:
ui->widgetLeft->setProperty("nav", "left");
ui->widgetBottom->setProperty("form", "bottom");
ui->widgetTop->setProperty("nav", "top");
ui->widgetVideo->setProperty("video", true);
Qss:
QWidget[nav="left"] QAbstractButton:checked,QWidget[nav="left"] QAbstractButton:pressed{
color:#386487;
border-style:solid;
border-width:0px 0px 0px 2px;
padding:4px 4px 4px 2px;
border-color:#00BB9E;
background-color:#EAF7FF;
}
切换器
ImageSwitch
日历
lunarcalendarwidget
导航按钮
NavButton
StyleDemo中的CSS
flatwhite.css lightblue.css psblack.css