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

相關文章
相關標籤/搜索