zoukankan      html  css  js  c++  java
  • PyQt样式设计

    QSS

    QSS(Qt Style Sheets)即PyQt样式表,是用来定义控件外观的一种机制。QSS内部实现大量参考了CSS,但是功能没有CSS强大,主要体现在选择器少,属性少等。

    使用QSS

    格式:控件.setStyleSheet(str)

    说明:str表示QSS样式

    例子:button.setStyleSheets('background-color: red')

    QSS语法

    基本规则

    QSS文件由一系列的“属性:值”对,使用分号间隔,使用大括号将声明包括在内。

    选择器

    通配选择器:*,匹配所有的控件

    类型选择器:QPushButton,匹配所有QPushButton类及其子类

    属性选择器:QPushButton[name='myButton'],匹配所有name是myButton的QPushButton实例,匹配的属性可以是自定义属性

    类选择器:.QPushButton,匹配所有QPushButton类实例,但是不匹配子类

    ID选择器:#myButton,匹配所有ID是myButton的控件,ID指的是objectName,通过setObjectName方法设置

    后代选择器:QDialog QPushButton,匹配QDialog中包含的QPushButton,不论是直接还是间接包含

    子选择器:QDialog > QPushButton,匹配QDialog中包含的QPushButton,要求QPushButton的直接父容器时QDialog 

    子控件

    子控件实际上也是一种选择器,主要应用在复合组件上,典型的就是QComboBox控件,如指定QComboBox中的下拉箭头为指定图片:

    QComboBox::drop-down { image : url(xxx.png) }

    伪状态

    QSS伪状态是以冒汗开头的一个选择表达式,如:hover表示鼠标滑过时的状态。常用的伪状态有:hover checked 

    例子:设置按钮的背景为不同颜色

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
    
    styleSheet = '''
        #one {
            background-color: red
        }
        
        #two {
            background-color: green
        }
    '''
    
    class MyWidget(QWidget):
        def __init__(self):
            super(MyWidget, self).__init__()
    
            self.button1 = QPushButton(self)
            self.button1.setText('点我1')
            self.button1.resize(100, 40)
            self.button1.move(20, 20)
            self.button1.setObjectName('one')
    
            self.button2 = QPushButton(self)
            self.button2.setText('点我2')
            self.button2.resize(100, 40)
            self.button2.move(20, 80)
            self.button2.setObjectName('two')
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        w = MyWidget()
        w.setStyleSheet(styleSheet)
        w.resize(500, 300)
        w.move(300, 300)
        w.setWindowTitle('Simple')
        w.show()
        sys.exit(app.exec_())

     注:除了自己编写样式外,网上有很多质量非常高的QSS样式,直接浏览下载就OK。

  • 相关阅读:
    Macos同时配置github与公司内部使用的gitlab
    position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
    Echarts实现嵌套双环饼状图
    MySQL 8.0.19安装教程(windows 64位)
    解决ECharts Can't get dom width or height!无法初始化图表的问题
    maven项目的pom.xml提示Missing artifact traffic-iso.sdk:sdk:jar:0.0.1
    ES6数组去重的常用方法
    uni-app中设置全局变量和动态修改全局变量
    彻底搞懂$router 和 $route
    onselectstart
  • 原文地址:https://www.cnblogs.com/chusiyong/p/12944316.html
Copyright © 2011-2022 走看看