在实际的项目开大中我们需要为界面设计不同的皮肤。我们的软件服务的对象不同就需要设计不同的视觉效果,例如我们为医院和政府部门分别设计两款软件,那么这是哪个不同的服务对象对于政府我们的主题应该是庄重一点,而对于医院可以选择稍微轻松一点的主题,因为每一个行业都有它的特殊性,因此我们需要根据去了解自己所在的行业,在实现界面的时候界面的主题应切合这个行业的背景。
对于特定皮肤的定制我们就需要用到QSS,我们上节课简单的讲解了QSS的基本原则,那么只是简单的介绍的话体会不到它的强大之处,其实在界面和逻辑部分完成好之后我们可以根据用户的喜好来设计两到三款皮肤,到时候验收的时候我们可以分别展示给用户。我们知道使用样式表有两种途径,本节实例主要应用了QApplication::setStylesheet()来给整个应用程序应用样式表,相比单独给每个组件分别设置样式方便。我们只需要编写.qss文件,然后加载.qss文件然后使用QApplication::setStylesheet()即可。
我们可以通过样式表来制定满足自己要求的皮肤,下面我们通过制定一些常用控件的样式来更加详细的了解样式表的使用。
定制QPushButton:
QPushButton{
border-style: solid;
border-width: 4px;
border-color: #534587;
border-radius: 6px;
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #f6f7fa, stop: 1 #dadbde);
min-width: 80px;
max-width: 80px;
}
QPushButton:hover{
border-style: solid;
background-color: #40E0D0;
border-color: #8B8B00;
}
QPushButton:hover:pressed{
background-color: #458B74;
border-color: #e61419;
padding-top: 4px;
padding-left: 4px;
}
效果如下:
通常情况下我们在按钮处于正常状态和按下状态的时候我们需要改变边框的颜色以及按钮的背景以及让按钮上的文字向右下方偏移,这样做的目的是能提供很好的交互性,但用户按下按钮是进入一种状态,当处于正常情况下是处于另外一种状态。
border-s