zoukankan      html  css  js  c++  java
  • 样式

    控件样式设定,主要有两个方法

      1)  控件对象调用setStyleSheet()方法

      2)  通过QSS文件设定样式

    setStyleSheet()
      语法
        <控件对象>.setStyleSheet("<样式配置>")

      使用示例

    label = QLabel(window)
    label.setStyleSheet("font-size:50px;color:red;")

    QSS文件

      QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制
      QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少
      可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上

      QSS文件里,各个花括号对应的样式是与控件类型,及控件对应属性值一一对应的
      如果一个控件对应多个样式,则更细粒度的样式会覆盖掉其他粒度大的样式

    使用示例

      qss_study.qss

    //适用于控件是QLabel,objectName是notice的控件
    QLabel#notice {
        font-size:10px;
        color:gray;
        border:1px solid gray;
        border-radius:8px;
    }
    
    //适用于控件是QLabel,objectName是notice,且其属性notice_level的值是normal的控件
    //color会取green,而不是gray
    QLabel#notice[notice_level="normal"] { 
        color:green;
        border-color:green;
    }
    
    //适用于控件是QLabel,objectName是notice,且其属性notice_level的值是warning的控件
    //color会取yellow,而不是gray
    QLabel#notice[notice_level="warning"] {
        color:yellow;
        border-color:yellow;
    }
    
    //适用于控件是QLabel,objectName是notice,且其属性notice_level的值是error的控件
    //color会取red,而不是gray
    QLabel#notice[notice_level="error"] {
        color:red;
        border-color:red;
    }

       pyqt.py

    # -*- coding: utf-8 -*-
    """..."""
    
    __author__ = 'liye'
    
    #引入包
    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv) #创建一个应用程序对象
    
    #控件控操作
    window = QWidget()
    window.setWindowTitle("我的第一个GUI")
    window.resize(500, 500)
    window.move(400,200)
    
    with open("study.qss", "r") as f:
        qApp.setStyleSheet(f.read())
    
    label1 = QLabel(window) #
    label1.setText("this is normal")
    label1.setObjectName("notice")
    label1.setProperty("notice_level","normal")
    
    label2 = QLabel(window) #
    label2.setText("this is warning")
    label2.setObjectName("notice")
    label2.setProperty("notice_level","warning")
    label2.move(10, 10)
    
    label3 = QLabel(window) #
    label3.setText("this is error")
    label3.setObjectName("notice")
    label3.setProperty("notice_level", "error")
    label3.move(20, 20)
    
    button = QPushButton(window) #qss文件的样式不适用与该组件,因为qss文件里没有定义QPushButton组件的样式
    button.setText("这是个按钮")
    button.setObjectName("notice")
    button.move(30, 30)
    
    window.show()
    
    sys.exit(app.exec_())
  • 相关阅读:
    sqlite android
    cocos2dx 2.1.3 使用json
    cocos2dandroid 自动缩放、高清显示
    cocos2dx HttpClient
    coco2dx 2.1.3 之 使用网络请求
    facebook on android
    项目运行出错怎么办?
    Bug应对策略 本文系转
    从网页中导入Excel
    ASP.NET HTTP运行时组成详解[转帖]
  • 原文地址:https://www.cnblogs.com/shiliye/p/12132388.html
Copyright © 2011-2022 走看看