Qt样式表的使用

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

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

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

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

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);
}

二、在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设置样式表,也可经过控件对象设置样式表。code

三、QSS语法htm

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

QPushButton 
{ 
    color: red;
}

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

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

相关文章
相关标签/搜索