在Qt中正确的设置窗体的背景图片的几种方法总结

yipeiwu_com6年前Python基础

Qt中正确的设置窗体的背景图片的方法大致有两种,下面将逐个讲解:

一. 利用styleSheet设置窗体的背景图片

使用stylesheet设置窗体的背景图片的时候,可以直接按照下图的操作去进行即可,如下图所示:

但是,需要注意的是:

1.在QWidget中这种方法是不行的,如果你足够细心的话,你会发现使用同样的设置背景图片的方法,背景图片其实并没有发生真实改变,但是它的子窗体背景图片是会发生改变的。

其实我们可以通过在添加一个i额QWidget来解决这个问题,即在QtDesigner中添加一个Frame窗口,我们只需对这个新添加的Frame窗口来进行styleSheet的字符串值即可,新添加的所有子控件都添加到这个新的Frame窗口里。

2. 做过Qt开发的朋友应该都知道,Qt的子窗体是会继承父窗体的属性的,这就证明了为什么父窗体的背景在子窗体中也会有,这个是对这个原因的一个非常合理的解释。那么问题来了,我们怎么才能做到子窗体不继承父窗体的背景呢?

既然上面分析到了原因,那么我们就知道如何解决了,仍然打开styleSheet代码编辑界面,我们只需要将下面的几行代码输入进去即可解决这个问题,具体代码如下所示:

#窗体名称 { 
border-image: url(:/HouseRentSystem/Resources/test.png); 
} 
#窗体名称 * { 
border-image:url(); 
} 

二. 通过纯代码方式实现:

  QWidget *widget = new QWidget();
  widget->setAutoFillBackground(true);
  QPalette palette;
  QPixmap pixmap(":/HouseRentSystem/Resources/test.png");
  palette.setBrush(QPalette::Window, QBrush(pixmap));
  widget->setPalette(palette);
  widget->show();

如果你对styleSheet比较熟悉,我个人还是建议你在在QtDesigner中直接进行编辑,这样将会省去你很多工作量,至少将少了程序中完全没必要添加的冗余代码。

以上这篇在Qt中正确的设置窗体的背景图片的几种方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解Python 装饰器执行顺序迷思

探究多个装饰器执行顺序 装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个迷思。 疑问 大部分涉及多个装饰器装饰的...

python频繁写入文件时提速的方法

问题背景:有一批需要处理的文件,对于每一个文件,都需要调用同一个函数进行处理,相当耗时。 有没有加速的办法呢?当然有啦,比如说你将这些文件分成若干批,每一个批次都调用自己写的python...

通过pycharm使用git的步骤(图文详解)

通过pycharm使用git的步骤(图文详解)

前言 使用git+pycharm有一段时间了,算是稍有点心得,这边整理一下,可能有的方法不是最优,欢迎交流,可能还是习惯敲命令去使用git,不过其实pycharm已经帮忙做了很多了,我们...

单链表反转python实现代码示例

单链表反转python实现代码示例

单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。 代码:...

Python中if __name__ == "__main__"详细解释

想必很多初次接触python都会见到这样一个语句,if __name__ == "__main__": 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一...