Qt常用QSS集合

    Qt拿来画控件还是很方便的,其中除了重写paint() 函数外,最常用的就是控件的样式表qss了。本文简单介绍下QSS,同时记录下各种QSS日常骚操作。
    QSS介绍

QSS简介
QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上。
QSS的语法规则
基本和CSS相同,只是有的属性QSS中没有,相当于CSS的子集。
QSS的选择器类型
在这里插入图片描述
在这里插入图片描述
另外上面所有的这些选择器可以联合使用,并且支持一次设置多个选择器类型,用逗号隔开,同CSS一样。

QSS子控件
QSS为很多复杂的复合控件提供了子控件的定义,以方便对这些复合控件的各个部分进行样式设置,具体使用下面说明。

QSS伪状态
QSS的伪状态选择器实际上与CSS中的类似,是以冒号开头的一个选择表达式,他限制了当控件在某一种状态下的时候才能应用QSS规则,伪状态只能描述一个控件的状态,或者是一个复合控件中的子控件的状态。下面列出常用的伪状态:
在这里插入图片描述
QSS代码片段
单个控件

QPushButton{        /*按钮上图标下文字*/
    text-align:bottom ;
    image-position:top;
    color: #666666;
    border:none;
    image: url(:xxxxx.png);
}

QPushButton{         /*按钮自适应拉伸背景*/
border-width: 2px 15px 2px 15px;
border-image: url(:/resource/icon/button_nomal.png) 2 15 2 15 repeat stretch;
color:#3288E8;
}

QPushButton{        /*按钮选中带下划线*/
border:none;
border-width:5;
border-bottom-style:solid;
border-color:transparent;
color:#666666;
}
QPushButton:checked{
color:#3288E8;
border-color: #3288E8;
}

QPushButton{      /*按钮左文字右图标*/
    background-image:url(:/resource/btn.png);
    background-repeat:norepeat;
    background-position:right;
    text-align:right;
    border:none;
    color:white;    
    padding-right:35px;
}

QPushButton {  //按钮渐变背景
    font-size:12px;
    border-radius:2px;
    color:rgba(51,51,51,1);
    background:qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(242,242,242,1), stop:1 rgba(255,255,255,1));
    border:1px solid rgba(221,221,221,1);
}

QWidget#line{ //在Widget某一边画分割线
    background-color:white;
    border-left:none;
    border-top:none;
    border-right:none;
    border-bottom:1px solid rgba(216,216,216,1);
}

含子控件

/**************************************CheckBox*********************************************/
QCheckBox::indicator:unchecked{
image: url(:/resource/chebox_off.png)
}

QCheckBox::indicator:checked{
image: url(:/resourcechebox_on.png)
}
/**************************************CheckBox*********************************************/


/**************************************QTabBar*********************************************/
QTabBar::tab {
    color: #666666; 
    height:40px; 
    width:100px;
} 
QTabBar::tab:selected {
    color: #333333; 
    font-weight:bold
}
 QTabBar::tab:hover {
    color: #666666;
}
/**************************************QTabBar*********************************************/


/**************************************滑动条*********************************************/
QSlider {
    background: rgb(170, 170, 170);
    padding: 2px;
    height: 40px;
}
QSlider::groove:horizontal {
    subcontrol-origin: content;
    background: rgb(76, 76, 76);
    
    /* the groove expands to the size of the slider by default. 
    by giving it a height, it has a fixed size */
    height: 20px;
}
QSlider::handle:horizontal {
    background-color: rgb(50, 50, 50);
    width: 40px;
    border-radius: 20px;
    
    /* handle is placed by default on the contents rect of the groove. 
    Expand outside the groove */
    margin: -10px 0;
}
QSlider::sub-page:horizontal {
    background: #999;
    margin: 5px;
    border-radius: 5px;
}
QSlider::add-page:horizontal {
    background: #666;
    margin: 5px;
    border-radius: 5px;
}
/**************************************滑动条*********************************************/


/**************************************下拉框*********************************************/
QComboBox{
border:0px; 
background-color:transparent;
color:#333333; 
}
QComboBox::down-arrow{
image:none;
}
QComboBox::drop-down{
width:0px; 
border:0px;
}
QComboBox QAbstractItemView {
color:#333333;
border: 1px solid #DDDDDD;
background-color:white;
selection-color:white;
selection-background-color: rgb(0, 102, 96);
}
/**************************************下拉框*********************************************/


/**************************************滚动条*********************************************/
QScrollBar:horizontal {
    height: 16px;
    border-width: 0px 10px 0px 10px;
    border-image: url(:/img/horizontal-track.png) 0 10 0 10 repeat stretch;
    margin-left: 6px;
    margin-right: 16px;
    padding-right: 4px;
}
QScrollBar::handle:horizontal {
    min-width: 40px;
    border-width: 0 17px 0 17px;
    border-image: url(:/img/horizontal-handle.png) 0 17 0 17 repeat repeat;
}
QScrollBar::sub-line:horizontal {
    width: 20px;
    height: 17px;
    subcontrol-position: left;
    subcontrol-origin: margin;
    background-image: url(:/img/horizontal-sub-line.png)
}
QScrollBar::add-line:horizontal {
    width: 20px;
    height: 17px;
    subcontrol-position: right;
    subcontrol-origin: border;
    background-image: url(:/img/horizontal-add-line.png)
}
QScrollBar:vertical {
    width: 16px;
    border-width: 10px 0px 10px 0px;
    border-image: url(:/img/vertical-track.png) 10 0 10 0 repeat repeat;
    margin-top: 6px;
    margin-bottom: 16px;
    padding-bottom: 6px;
}
QScrollBar::handle:vertical {
    min-height: 40px;
    border-width: 17px 0px 17px 0px;
    border-image: url(:/img/vertical-handle.png) 17 0 17 0 repeat repeat;
}
QScrollBar::sub-line:vertical {
    width: 17px;
    height: 22px;
    subcontrol-position: top left;
    subcontrol-origin: margin;
    background-image: url(:/img/vertical-sub-line.png)
}
QScrollBar::add-line:vertical {
    width: 17px;
    height: 22px;
    subcontrol-position: bottom;
    subcontrol-origin: border;
    background-image: url(:/img/vertical-add-line.png)
}
/**************************************滚动条*********************************************/

/**************************************滑块*********************************************/
QSlider {
    height: 20px;
}

QSlider::groove:horizontal {
    subcontrol-origin: content;
    background: transparent;
    height: 20px;
}

QSlider::handle:horizontal {
    background-color: rgb(50, 50, 50);
    width: 20px;
    border-radius: 10px;
}

QSlider::sub-page:horizontal {
    background: #0078FF;
    margin: 7px;
    border-radius: 3px;
}

QSlider::add-page:horizontal {
    background: #999999;
    margin: 7px;
    border-radius: 3px;
}
/**************************************滑块*********************************************/
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt Creator QSSQt Creator用于样式表设计和实现的。它是一种基于CSS的形式语言,用于创建Qt应用程序的用户界面。Qt Creator QSS语言为设计人员提供了更多的创作空间,并提供了在Qt应用程序中更多的自定义设计选项。 Qt Creator QSS能够在不编写代码的情况下创建和定制控件的样式。它允许设计人员使用简单和有意义的语法来控制界面的外观和风格。Qt Creator QSS允许开发人员自定义应用程序的样式表,并以此为基础为用户界面的设计添加独特的风格和特色。例如,制作独特的背景和按钮样式可以让应用程序人性化。 通过Qt Creator QSS,开发人员可以更容易地设计用户界面,改善应用程序的功能和外观。QT Creator QSS不仅为用户提供了更多的自由定制,还让他们更方便快速的实现不同设备的响应式特性和局限性。 综上所述,Qt Creator QSS为开发人员提供了更多的选择和更广泛的自定义选项,这使得他们可以更好的控制他们的应用程序的外观和特色,从而为用户提供更好的体验。而且通过内置的“预览”功能,设计人员可以立即看到他们的更改结果,使得设计/开发更加高效。 ### 回答2: Qt Creator是一种常用的跨平台开发工具,它允许开发人员创建使用C++编程语言的GUI应用程序。Qt Style Sheets(QSS)是一种基于CSS风格的技术,它可以用于自定义Qt应用程序的UI元素。在Qt Creator中,可以使用QSS来定制应用程序的外观和样式。 在Qt Creator中,可以通过创建.qss文件来定义QSS样式。在这个文件中,可以使用CSS语法来定义各种Qt应用程序的UI元素的样式,如窗口、标签、按钮等。例如,可以使用以下代码来为应用程序中所有按钮定义背景颜色和字体颜色: QPushButton { background-color: red; color: white; } 还可以使用QSS来定义特定状态下的UI元素样式。例如,可以使用以下代码来为应用程序中所有被禁用的按钮定义不同的颜色: QPushButton:disabled { background-color: gray; color: white; } 在Qt Creator中,可以通过加载.qss文件来应用定义的QSS样式。可以将应用程序的样式与QSS相结合,实现自定义风格和外观。通过使用Qt Creator和QSS,开发人员可以快速优雅地实现跨平台GUI应用程序。 ### 回答3: Qt Creator QSS是指Qt Creator的样式表(Qt Style Sheet)设置,它可以自定义Qt Creator界面的外观和风格。QSS可以改变Qt Creator中各个组件的颜色、字体、边框、尺寸等属性,让Qt Creator满足个人偏好和需求。QSS具有易用、灵活、强大的特点,在Qt Creator中可以快速实现界面定制化。 QSS是一种基于CSS语法的样式表语言,它的语法清晰简单,易于理解和修改。Qt Creator中可以通过“文件-新建文件-Qt-Qt Style Sheet File”来新建QSS文件,并可以通过“工具-选项-界面-样式表”来加载和设置样式表。QSS的设置可以针对全局,也可以针对单个组件。例如,可以设置按钮的hover状态下的背景颜色和字体颜色,也可以设置侧边栏的颜色和边框样式等。此外,Qt Creator提供了一些预设的常用QSS样式表,如Dark样式和Flat Light样式,用户可以选择直接使用或自行定制。 总之,Qt Creator QSS功能丰富强大,可以帮助用户定制出符合自己习惯和审美的IDE界面,提高工作效率和舒适度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值