1. 程式人生 > >Qt樣式表應用

Qt樣式表應用

通過檔案定義qss
1  將QSS程式碼寫入.qss檔案中;(calendar.qss)

2  在qrc中加入該.qss檔案;
3  在程式碼中進行讀取使用

    QFile file(“:/calendar.qss”);
    file.open(QFile::ReadOnly);
    QString styleSheet = QLatin1String(file.readAll());

    qApp->setStyleSheet(styleSheet);
    file.close();


通過程式碼直接設定qss
QPushButton* myPushButton;
myPushButton->setStyleSheet(“* { color: blue }”);
myPushButton->setStyleSheet(“color: blue”);

參考:
http://www.meego.com/thread-607-1-1.html
  QSS程式設計語法  

 雖然Qt現在還不是特別完善,但它的跨平臺性,介面重用性,已經表現出比mfc更強的、更好的效能,昨天寫了qss樣式表demo,但是在書上對樣式表的使用,並不詳細,初學者可能會遇到一些問題,今天對照官方程式碼,終於調通,簡單記錄如下:

    1、建立文字檔案,寫入樣式表內容,更改檔案字尾名為qss;

    2、在工程中新建資原始檔*.qrc,將qss檔案加入資原始檔qrc中,此處注意prefix最好為”/”,否則在呼叫qss檔案時會找不到檔案;

    3、通過傳入路徑/檔名的方式建立一個QFile物件,以readonly的方式開啟,然後readAll,最後qApp->setStyleSheet就可以使qss生效。

    樣式表的方式可以很方便的完成簡單的貼圖工作,而且效果也不錯,簡化了我以前在mfc上為了貼圖,不得不重寫控制元件類個工作,也使得美工可以很方便的修改生成的程式的顏色。

    當今年4月初的時候,NOKIA收購了Qt,並推出了Qt4.2,當時並沒有太注意,而當mfc開發的介面不能滿足我的時候,我才去研究這個新的技術。

    Qt很爽,因為是C++語言,所以看起來很快,預計在明年一月底,我就可以完全掌握,而且也因為是C++程式碼級跨平臺,所以也獲得了很高的執行效率。而它生成控制元件的方式則比mfc上的資原始檔好得多,mfc中的窗體資源全部在一個.src檔案中,不利於重用,而Qt中每個窗體擁有自己的資原始檔,並且和窗體類是分開的,方便了重用。從此,我不在被侷限於windows平臺。

    我會研究一下如何在應用程式中完成widget部件的使用,因為那種透明、隨意拖拽的自定義部件必將是下一代UI主流。

  1. QFile qss(“stylesheet.qss”);
  2. qss.open(QFile::ReadOnly);
  3. app.setStyleSheet(qss.readAll());
  4. qss.close();