• QT=> 父界面设置背景图,子界面不受影响解决方案


      设置QT控件背景图的方法有几种,这里不做介绍。本文作者采用QSS方式设置背景图

    问题:父界面通过setStyleSheet设置背景图时,在父界面基础上创建子界面,此时子界面中的背景会被父界面影响。

        //主界面设置背景图
        this->setStyleSheet("QFrame{background-image:url(:lcdicon/icon/background_1.png)}");  
    
    • 1
    • 2

    在这里插入图片描述
      此处弹窗应为红色,但是却受到父界面背景图影响,导致颜色变成父界面背景图颜色。即使此时的子界面是通过paintEvent(QPaintEvent *event)函数重绘,也是会受到父界面背景图影响。

    解决方法
    在父界面设置背景图时,需要设置如下:

    	MainScreen::MainScreen(QWidget *parent)
        : QFrame(parent)
        {
        	//do something
        	...
        }
    
    //=========================================================
    	//声明父对象
    	MainScreen *mainScreen;
    //=========================================================	
        //设置父对象背景图
        this->setObjectName("mainScreen");   //此句非常必要,不可省略
        this->setStyleSheet("QFrame#mainScreen{background-image:url(:lcdicon/icon/background_1.png)}");//#mainScreen
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    此时效果如下:
    在这里插入图片描述
    变为正常子界面重绘的红色背景,不受父界面影响

    举例
    1、创建父界面

        QWidget parent_widget= new QWidget;
        parent_widget->setObjectName("parent_widget");
        parent_widget->setStyleSheet("#parent_widget{background-image:url(:/test.png)}");
        
        //或者如下 都可以。只是加不加控件类的区别(QWidget)
        parent_widget->setStyleSheet("QWidget#parent_widget{background-image:url(:/test.png)}");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    widget->setObjectName(“parent_widget”);这一句非常重要,不加的话,子界面会受到父界面影响。setObjectName(“parent_widget”)中widget是父界面的名称。

    widget->setStyleSheet(“#parent_widgett{background-image:url(:/test.png)}”);
    #parent_widget(为控件名称)

    2、创建子界面

        QWidget sub_widget= new QWidget(parent_widget);
    	sub_widget->resize(100,100);
    
    • 1
    • 2

    此时子界面sub_widget 做任何操作,都不会受到parent_widget背景图的影响

  • 相关阅读:
    【Vs code调试C++】
    ubuntu在PowerShell的vi编辑器蓝色注释看不见
    六.schema设计
    APP自动化之weditor工具
    Unity的碰撞检测(六)
    信息论基础第三章阅读笔记
    逆天工具一键修复图片,视频去码。本地部署超详细!!
    FLOPS的计算
    基于多目标灰狼算法的冷热电联供型微网低碳经济调度(Matlab代码实现)
    PDM篇 | SOLIDWORKS 2024新功能
  • 原文地址:https://blog.csdn.net/qq_41359157/article/details/126743680