c++ 如何为包含的小部件设置与容器不同的样式表

7vhp5slm  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(83)

我有一个部分是一个顶部小部件,顶部小部件的颜色是灰色的,我已经把几个小部件内的顶部小部件,QComboBox,QLineEdit和2 QButton。
但是当我右击QLineEdit时,窗口的默认上下文颜色是灰色的,或者当我打开QComboBox时,背景颜色是灰色的。
我已经将这两个小部件的背景色设置为白色,但它不起作用。
我该如何解决此问题?

jaxagkaj

jaxagkaj1#

样式表会传播到所有的子控件,所以你必须使用右选择器来限制它们的范围。因为上下文菜单是QLineEdit的子菜单,所以它也会受到影响。

// What you have probably done:
myLineEdit->setStyleSheet("background-color: gray");

// What you should have done:
myLineEdit->setStyleSheet("QLineEdit { background-color: gray }");      

// What you should do if there might be child widgets of the same type 
// but for which you don't want the style to apply:
myLineEdit->setObjectName("myLineEdit");
myLineEdit->setStyleSheet("QLineEdit#myLineEdit { background-color: gray }");

字符串
有关详细信息,请参见样式表样式表类型。

相关问题