Qt樣式表應用
通過檔案定義qss
1 將QSS程式碼寫入.qss檔案中;(calendar.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”);
參考:
雖然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主流。