来自:http://hi.baidu.com/lesley_gyn/blog/item/84282dc7582cd14f0eb345c4.html
通过文件定义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");
参考: 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主流。
- QApplication app(...);
- QFile qss("stylesheet.qss");
- qss.open(QFile::ReadOnly);
- app.setStyleSheet(qss.readAll());
- qss.close();