Qt样式表

来源:互联网 发布:安卓版微信清僵尸软件 编辑:程序博客网 时间:2024/05/16 15:53

Qt中可以灵活的使用层叠样式表(CSS),其语法和css很相似。因为HTML CSS的灵活性,可以很方便的为QT界面设计自己需要的外观。

QT4.8各部件Style Sheets的用法示例在这里:点击打开链接

Style Sheets用户手册在这里:点击打开链接

官网上写的很详细了,我就不多说了,直接抄过来没啥意思说下需要注意的几点。

1.各子对象设置样式表

部件的对象名调用样式表,如下

comboBox->setStyleSheet("QComboBox{border:1pxsolidgray;border-radius:3px;padding:1px18px1px3px;}");

这样单独对该部件设置样式表。需要注意的就是,当后面再次使用setStyleSheet函数对comboBox设置样式表时,之前设置的样式表就不起作用了,也即样式被现在定义效果的取代了。

如果想定义所有某一类控件(比如界面上所有的QComboBox)一个样式,可以使用qApp进行设置。

2.使用qApp设置样式表

qApp是一个全局对象,使用其设置样式表之后,部件就固定样式了,当然,后面使用某个子对象调用setStyleSheet函数时,会只改变函数中设置的样式,其他的样式不会发生改变。

比如:

qApp->setStyleSheet("QPushButton{border:2pxsolidblue;border-radius:6px;background-color:#E3EAA5;min-width:80px;}QComboBox{border:1pxsolidgray;border-radius:3px;padding:1px18px1px3px;}QLineEdit{border:1pxsolidgray;border-radius:5px;padding:08px;selection-background-color:darkgray;}");

这句话定义了按钮、下拉框、行编辑框的样式,界面中这三种部件都按照里面定义的样式显示。如果后面要对其中一个子部件的样式进行修改,可以直接调用setStyleSheet,将需要的样式覆盖覆盖掉之前的,其他的保留,例如

pushButton->setStyleSheet("QPushButton{background-color:red;}");

这样就只改变按钮的背景色,边框大小那些qApp定义好的还是不变。

注意:当很多部件布局在一起时,有时先使用qApp,然后在子部件中设置会出现意想不到的结果,这时只有不用qApp,直接对子部件进行样式表设置,每次样式表元素都要设置全,因为单独设置会覆盖掉之前的样式表。

原创粉丝点击