以利用qss样式在主窗口添加背景图片为例:
①新建qss文件
建立文本文件,内容先空着一会添加。更改文件后缀名为qss。本例中qss为style.qss
②创建qrc资源文件
右键点项目 “Add New(添加新文件)”->”QT Resource file(QT资源文件)” 生成一个qrc文件。本例中qrc为src.qrc
③将qss文件添加进qrc中
注意前缀改成“/”,否则外部调用无法找到
添加图片资源方式同上
④新建一个loadCss类,供调用qss使用
loadcss.h
1 2 3 4 5 6 7 8 9 10 11 12 13 | #ifndef LOADCSS_H #define LOADCSS_H #include <QWidget> #include <QFile> #include <QTextStream> class loadCss { public: loadCss(QString qssName,QWidget *parent); }; #endif // LOADCSS_H |
loadcss.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include "loadcss.h" loadCss::loadCss(QString qssName,QWidget *parent) { QFile data(qssName); QString qssFile; if(data.open(QFile::ReadOnly))//读取文件流 { QTextStream styleIn(&data); qssFile = styleIn.readAll(); data.close(); parent->setStyleSheet(qssFile);//对目标窗体进行样式设置 } } |
④在目标窗体类中添加调用样式代码
这里选在主窗体类中,即在mainWindows.cpp添加
1 2 3 4 5 | //头部要#include "loadcss.h" loadCss(QString(":/style.qss"),this); //也可以直接添加样式,当然相对外部加载来说不够灵活 // this->setStyleSheet("#MainWindow {border-image: url(:/images/bg.jpg);}"); |
⑤编辑qss样式
style.css
1 | #MainWindow {border-image: url(:/images/bg.jpg);} |
MainWindow为窗体名
bg.jpg我用了一种纯黑色的图所以效果如下
qss其实和html的css是一样的,只不过这里的窗体名和空间名不要弄错。更多QT技巧,欢迎大家继续关注。
BeiTown
2013.01.27