如何在Qt Desginer中设置背景图片,且不覆盖其它控件

文章讲述了在设置背景图片时,由于组件继承导致背景图片覆盖其他控件的现象。通过使用无继承关系的ListView作为背景层,可以避免这个问题。具体步骤包括添加ListView,调整大小,设置为后台,并在样式表中添加背景图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正常情况,我们直接通过在样式表里设置背景图片会出现背景图片覆盖其它控件的情况,比如下面操作:

首先右击空白处,点击改变样式表。
在这里插入图片描述

然后选择background-image
在这里插入图片描述

然后点击铅笔图标
在这里插入图片描述

之后我们要先添加前缀,也就是我们的项目名,比如我的这个项目名为Snake,那就添加一个名为Snake的前缀,后面要把资源文件添加到该前缀下,即添加到该项目下。
在这里插入图片描述

然后点击添加资源文件,把我们要用到的图片添加到该前缀下
在这里插入图片描述

上面的那三张图片就是我添加的,选择其中一张图片作为背景图片,然后一路点OK,会发现,确实添加了背景图片,但是背景图片却覆盖了其它的控件。
在这里插入图片描述
这是因为组件的继承。 最开始的面板就是父类,我们新增加的组件是子类,默认都是继承的。因此我们给父类面板控件添加背景图片,子类控件也都继承下来了,也就相当于给子类添加了背景图片,所以背景图片就覆盖了子类。
当然了继承也有继承的好处, 比如,我想统一所有的字体样式,然后就设置父类的字体样式就好了。

既然知道了原理,就不要随便设置父类的样式,以免出现子类控件继承了父类的样式这种情况。

这里我们可以使用一个跟其它组件没有继承关系的ListView,然后铺开,专门作为背景层。

我们将刚刚的操作全部删除掉,重新开始。
在这里插入图片描述

首先我们将ListView拖拽到界面上
在这里插入图片描述

然后将ListView放大,铺满整个面板,然后右击,选择放到后面,结果如下:
在这里插入图片描述

此时我们左击空白处,选中ListView,然后右击空白处,选择改变样式表,然后点击background-image:
在这里插入图片描述

后面的操作就和之前讲过的一样,先点击铅笔图标,然后添加前缀,再添加要使用的资源文件,添加后,选中该图片,一路点OK,最终呈现的效果如下,没有覆盖其它控件。
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子非鱼Swx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值