关于QT利用setStyleSheet为主控件添加背景图片,而不影响其子控件的背景设置

关于这个问题我查看了许多人的博客,发现有些人回避利用setStyleSheet进行主控件添加背景图片,因为这种方法会使子控件继承朱控件的背景格式,但是通过细心查找还是研究  出来如何解决这个问题。

1.一个未进行任何处理的对主控件添加背景图片的结果:

                                                                                     关于QT利用setStyleSheet为主控件添加背景图片,而不影响其子控件的背景设置_第1张图片

2.经过处理的结果如下:

                                                                                     关于QT利用setStyleSheet为主控件添加背景图片,而不影响其子控件的背景设置_第2张图片

3.代码处理如下:

        if (MyClassClass->objectName().isEmpty())
            MyClassClass->setObjectName(QString::fromUtf8("MyClassClass"));
        MyClassClass->resize(325, 269);


        MyClassClass->setStyleSheet(QString::fromUtf8("QDialog#MyClassClass{border-image: url(:/MyClass/C:/Users/dell/Desktop/1.png.jpg)}"));


        gridLayout_6 = new QGridLayout(MyClassClass);

其中的操作是我设置了主控件的ObjectName,然后在setStyleSheet中添加主控件类名QDialog#ObjectName去指出添加背景的对象,这样就解决了问题。




你可能感兴趣的:(关于QT利用setStyleSheet为主控件添加背景图片,而不影响其子控件的背景设置)