• Qt样式表的使用


      Qt中可以灵活的使用层叠样式表(CSS),其语法和CSS很相似。因为HTML CSS的灵活性,所以可以很方便的为QT界面设计自己需要的外观。除了子类化Style类,使用QT样式表(QStyleSheet)是另一种快速改变QT程序UI风格的方法,它很大程度上借鉴和参考了 HTML层叠样式表的语法和思想。

      StyleSheet文件的默认后缀名为qss,可通过命令行参数 -stylesheet filename.qss 来设置样式表,也可通过QApplication::setStyleSheetQWidget::setStyleSheet来设置应用程序或特定控件要使用的样式表。::setStyleSheet函数的参数是字符串(不是qss文件的名字,而是样式表的内容),所以直接使用的话,不方便一次设置大量的规则,但可使用资源文件将qss样式表嵌入到程序中,然后通过QApplication::setStyleSheet来使用。

      下面简单介绍Qt样式表(QSS)的使用。

    1、在当前工程目录下建立.qss格式的文件,如:css.qss,在其中编写Qt支持的CSS代码,如下所示:

    QPushButton:hover
    {
        color:yellow;
        background-color:green;
    }
    
    QPushButton[text="Cancel"]
    {
        color:red;
    }
    
    QTableView::item:hover,QLineEdit:hover,QComboBox:hover,QTextEdit:hover
    {
        background-color:rgb(127,255,212);
    }
    
    QMenuBar,QStatusBar
    {
        background-color:rgb(100,149,237);
    }

    2、在Qt程序中设置该样式表

      在Qt程序的合适位置添加如下代码:

    //读取样式表
    QFile qssFile("css.qss");//资源文件":/css.qss"
    qssFile.open(QFile::ReadOnly);
    if(qssFile.isOpen())
    {
        QString qss = QLatin1String(qssFile.readAll());
        qApp->setStyleSheet(qss);
        qssFile.close();
    }

      在程序中可通过qApp设置样式表,也可通过控件对象设置样式表。

    3、QSS语法

      同CSS一样,它也由Selector和Declaration组成,如:

    QPushButton 
    { 
        color: red;
    }

      若有几个Selector指定了相同的Declaration,可使用逗号将Selector选择器分开,如:

    QPushButton, QLineEdit, QComboBox
    { 
        color: red; 
    }

    注:

      CSS的语法请参见:http://www.w3school.com.cn/css/css_syntax.asp

      Qt Style Sheets的详细介绍请参见官网:http://doc.qt.io/qt-4.8/stylesheet.html

  • 相关阅读:
    html页面3秒后自动跳转的方法有哪些
    web前端教程之javascript创建对象的方法
    想学好web前端,需要看哪些书籍
    码农只能干到30岁的说法可信吗?
    不管你以后写不写JS,都应该学会这种思考方式
    Python基础知识之排序法
    input和textarea修改placeholder颜色和字号
    关于IE和Firefox兼容性问题及解决办法
    vue-cli构建vue项目
    js 小数取整的函数
  • 原文地址:https://www.cnblogs.com/gaohongchen01/p/4534194.html
Copyright © 2020-2023  润新知