qt中怎么编写widget的css样式

html-css05

qt中怎么编写widget的css样式,第1张

/* *QWidget* */

QWidget {

    border: 1px solid #FF0000    /*边框*/

    border-radius: 5px           /*圆角*/

    background-color: red        /*背景色*/

}

虽然Qt现在还不是特别完善,但它的跨平台性,界面重用性,已经表现出比mfc更强的、更好的性能,昨天写了qss样式表demo,但是在书上对样式表的使用,并不详细,初学者可能会遇到一些问题,今天对照官方代码,终于调通,简单记录如下:

1、建立文本文件,写入样式表内容,更改文件后缀名为qss;

2、在工程中新建资源文件*.qrc,将qss文件加入资源文件qrc中,此处注意prefix最好为"/",否则在调用qss文件时会找不到文件;

3、通过传入路径\文件名的方式创建一个QFile对象,以readonly的方式打开,然后readAll,最后qApp->setStyleSheet就可以使qss生效。

样式表的方式可以很方便的完成简单的贴图工作,而且效果也不错,简化了我以前在mfc上为了贴图,不得不重写控件类个工作,也使得美工可以很方便的修改生成的程序的颜色。

Qt很爽,因为是C++语言,所以看起来很快,而且也因为是C++代码级跨平台,所以也获得了很高的执行效率。而它生成控件的方式则比mfc上的资源文件好得多,mfc中的窗体资源全部在一个.src文件中,不利于重用,而Qt中每个窗体拥有自己的资源文件,并且和窗体类是分开的,方便了重用。从此,我不在被局限于windows平台。

我会研究一下如何在应用程序中完成widget部件的使用,因为那种透明、随意拖拽的自定义部件必将是下一代UI主流。

QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上。

基本和CSS相同,只是有的属性QSS中没有,相当于CSS的子集。

另外上面所有的这些选择器可以联合使用,并且支持一次设置多个选择器类型,用逗号隔开,同CSS一样。

QSS为很多复杂的复合控件提供了子控件的定义,以方便对这些复合控件的各个部分进行样式设置,具体使用下面说明。

QSS的伪状态选择器实际上与CSS中的类似,是以冒号开头的一个选择表达式,他限制了当控件在某一种状态下的时候才能应用QSS规则,伪状态只能描述一个控件的状态,或者是一个复合控件中的子控件的状态。下面列出常用的伪状态:

持续更新ing...