程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> QSS 樣式表 (一),qss樣式表

QSS 樣式表 (一),qss樣式表

編輯:C++入門知識

QSS 樣式表 (一),qss樣式表


在開發應用程序時,往往對界面的美觀有一定的要求。Qt 引入了 QSS 機制,使得界面的美化工作變的輕輕松松。嗯,QSS聽著有點耳熟。是的,QSS的語法和CSS類似。在此做些總結。

先來看一個簡單的例子。

 1 #include <QtGui/QPushButton>
 2 #include <QtGui/QWidget>
 3 #include <QTextCodec>
 4 #include <QtGui/QHBoxLayout>
 5 #include <QtGui/QApplication>
 6 
 7 int main(int argc, char *argv[])
 8 {
 9     QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
10     QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
11     QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
12 
13     QApplication app(argc, argv);
14 
15     QWidget *pWidget = new QWidget;
16     QPushButton *pBtn = new QPushButton;
17     pBtn->setText(QObject::tr("我是一個按鈕"));
18     QHBoxLayout *pLayout = new QHBoxLayout;
19 
20     pLayout->addWidget(pBtn);
21     pWidget->setLayout(pLayout);
22     
23     pWidget->show();
24 
25     return app.exec();
26 }

運行結果:

不是很好看吧!讓我們對以上代碼稍做修改:

 1 #include <QtGui/QPushButton>
 2 #include <QtGui/QWidget>
 3 #include <QTextCodec>
 4 #include <QtGui/QHBoxLayout>
 5 #include <QtGui/QApplication>
 6 
 7 int main(int argc, char *argv[])
 8 {
 9     QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
10     QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
11     QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
12 
13     QApplication app(argc, argv);
14 
15     QWidget *pWidget = new QWidget;
16     QPushButton *pBtn = new QPushButton;
17     pBtn->setText(QObject::tr("我是一個按鈕"));
18 
19     // 新添加的代碼
20     // 用於 QPushButton 的外觀美化
21     // 這句話就是QSS樣式
22     // QPushButton{ background-color: rgb(120,120, 120); color: rgb(0, 230, 230); }
23     // 這個函數就是應用樣式
24     // setStyleSheet
25     pBtn->setStyleSheet(QObject::tr("QPushButton{ background-color: rgb(120,120, 120); color: rgb(0, 230, 230); }"));
26 
27     QHBoxLayout *pLayout = new QHBoxLayout;
28 
29     pLayout->addWidget(pBtn);
30     pWidget->setLayout(pLayout);
31     
32     pWidget->show();
33 
34     return app.exec();
35 }

以上兩段代碼比較,第二段代碼增加了25行這一行代碼,運行效果:

可以看到按鈕的外觀發生了底色,按鈕的文本顏色改變。這就是QSS的神奇之處。

總結:QSS其實就是一段文本,這段文本裡指定了控件的外觀屬性(如背景色、邊框、文本)應該使用哪些屬性值做改變。QSS 樣式文本要想應用在 Qt 程序裡,可以使用 setStyleSheet 函數。象本文對QPushButton應用樣式,可以調用QPushButton的成員函數setStyleSheet。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved