自学内容网 自学内容网

Qt Designer的父子部件样式表设置学习

         在Qt Designer中新建图像界面,放置两个QWidget,命名为widget_1和widget_2;两个QPushButton,pushButton_1和pushButton_2。

 它们的父子从属关系如下:

设置widget_1的样式表:

QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

这个样式表的含义为:widget_1中,所有的QWidget都按照指定的样式表显示。

 由于QPushButton是QWidget的子类,所以pushButton_1和pushButton_2被隐含修改了样式表。

 有些时候,这并不是我们期望的结果,我不希望QPushButton与QWidget是同样的显示效果。

解决办法:

1、单独改变子类的样式表:将widget_1的样式表设置为:

QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*类型为QPushButton的部件重新定义*/

QPushButton{ 

background-color: rgb(150, 150, 150);

border: 2px solid rgb(100,160, 100);

}

 这里,将隶属于widget_1的类型为QPushButton的所有部件全部定义了新的显示特性。

2、 单独改变某一个小部件的样式表:将widget_1的样式表设置为:

QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*pushButton_1单独定义*/ 

#pushButton_1{

background-color: rgb(150, 150, 150);

border: 2px solid rgb(100,160, 100);

}

 “#pushButton_1”的含义是将pushButton_1单独设置样式表。需要注意的是,采用这种单独设置的办法,如果被改变的对象还有子部件,子部件并不跟随父部件的改变而改变。

比如,将widget_1的样式表设置为:

QWidget{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*widget_2单独定义*/

#widget_2{

background-color: rgb(150, 150, 150);

border: 2px solid rgb(100,160, 100);

}

单独改变了widget_2,但是隶属于widget_2的pushButton_1和pushButton_2并没有改变。

利用这个原理,就有了下面的方法:

3、将父部件单独设置样式表:

将widget_1的样式表设置为:

/*父部件widget_1单独定义*/

#widget_1{

background-color: rgb(221, 221, 221);

border: 2px solid rgb(160,100, 100);

}

/*父部件widget_2单独定义*/

#widget_2{

background-color: rgb(150, 150, 150);

border: 2px solid rgb(100,100, 160);

}

/*所有的QPushButton类定义*/

QPushButton{

background-color: lightgreen;

}

 由于将两级父容器部件单独设置了样式表,所以隶属于它们的子部件不再继承父部件的样式表。


原文地址:https://blog.csdn.net/xulibo5828/article/details/140726696

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!