PyQt5 实现给无边框widget窗口添加背景图片

我就废话不多说了,大家还是直接看代码吧~

#! /usr/bin/env python
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPalette, QBrush, QPixmap
class NoBorderWindow(QWidget):
  def __init__(self):
    super().__init__()
    self.window_UI()
    self.drawn()  

  def window_UI(self):
    self.resize(950, 200)
    self.setWindowFlags(Qt.FramelessWindowHint)

  def drawn(self):
    self.palette = QPalette()
    self.palette.setBrush(QPalette.Background, QBrush(QPixmap("./images/bg.gif")))
    self.setPalette(self.palette)

if __name__ == "__main__":
  app = QApplication(sys.argv)
  win = NoBorderWindow()
  win.show()
  sys.exit(app.exec_())

补充:PyQt5 设置QWidget窗口背景图片问题

QWidget 添加背景图片问题

QWidget 创建的窗口有时并不能直接用 setStyleSheet 设置窗口部分样式

比如背景图,在Qt Designer 设置好背景图样式了 QWidget#Form{ … } 并能看到效果

但转为 python3 代码后,运行程序显示不了这个背景图

如果样式使用的是 background-image 就好办了,

直接使用下面代码替换,即使用 QPalette 控件重新画背景图

    palette = QPalette()
    palette.setBrush(QPalette.Background, QBrush(QPixmap(":/pic/images/sysBackground.jpg")))
    self.setPalette(palette)

QSS 背景图样式区别:

background-image: 背景图,默认原图大小,窗口空余部分填充此背景图

border-image: 默认跟随窗口大小进行拉伸

image: 默认原图大小,窗口空余部分不补充

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 解决PyQt5 无边框后窗口的移动问题

    由于隐藏了标题栏无法通过点击标题栏来实现窗口的移动,这时候我们可以通过鼠标事件来移动窗口 第一步:判断鼠标左键是否被按下,如果按下则将flag设为True并获取当前的位置 第二步:判断鼠标是否移动并且左键被按下,若移动了计算移动的距离在移动窗口 第三步:若鼠标释放了则将flag设为False 具体做法:重写窗口类自带的三个函数 def mousePressEvent(self, event): if event.button()==Qt.LeftButton: self.m_flag=True

  • pyqt5实现井字棋的示例代码

    本文介绍的是利用pyqt5实现井字棋,下面话不多说了,来一起看看详细的介绍 作者:袁少泽 代码如下(示例): import random import sys import time from PyQt5.QtCore import * from PyQt5.QtWidgets import * start=time.time() class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") For

  • 详解Python GUI编程之PyQt5入门到实战

    1. PyQt5基础 1.1 GUI编程学什么 大致了解你所选择的GUI库 基本的程序的结构:使用这个GUI库来运行你的GUI程序 各种控件的特性和如何使用 控件的样式 资源的加载 控件的布局 事件和信号 动画特效 界面跳转 设计工具的使用 1.2 PyQT是什么 QT是跨平台C++库的集合,它实现高级API来访问现代桌面和移动系统的许多方面.这些服务包括定位和定位服务.多媒体.NFC和蓝牙连接.基于Chromium的web浏览器以及传统的UI开发.PyQt5是Qt v5的一组完整的Python

  • PyQt5通过信号实现MVC的示例

    众所周知MVC是个好东西.前阵子网上搜了下,但关于用PyQt5实现MVC的中文文档缺少之又少,优质的文档只搜到了一篇.既然这样,来,开个坑,学习新知识,吸引流量.话说,关于PyQt5,布局那里需要好好看看,容器类控件需要好好看看,还有多线程和自动化测试那块.但要写出完美GUI需要大量的代码经验和文档查询的能力.然后,嗯,这部分坑就填完了. 扯回正题:假设此时面临的场景是,一个软件涉及好几个页面,每个页面是单独的代码.且每个页面需要有自己的controller,最终所有的controller汇总到

  • PyQt5中QSpinBox计数器的实现

    QSpinBox 是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘上的上/下箭头来增加/减少当前显示的值,当然用户也可以输入值.在默认情况下,QSpinBox 的取值范围是 0-99,每次改变的步长值为 1. QSpinBox 类和 QDoubleSpinBox 类均派生自 QAbstractSpinBox 类.QSpinBox 用于处理整数值,QDoubleSpinBox 则用于处理浮点值,它们之间的区别就是处理数据的类型不同,其他功能都基本相同.QDoubleSpin

  • Pyqt5 实现窗口缩放,控件在窗口内自动伸缩的操作

    在Qtdesigner中新建一个主界面如下所示: ctrl+R 预览 从预览图中可以看出这时的界面不支持伸缩,拖动过小的话会导致部分界面遮住不可见,这时我们就要用到布局选项,首先对上面的按钮和文本框布局按住ctrl选中要布局的控件 根据实际情况选中工具栏上的布局按钮,我这里是网格布局 选中后如下所示 然后在对底下的listwidget和tablewidget进行水平布局,布局完成后如下所示,其中有个细节是还要对Qgroupbox在进行一次水平或垂直布局,具体是选中Qgroupbox控件然后点击水

  • PyQt5 实现给无边框widget窗口添加背景图片

    我就废话不多说了,大家还是直接看代码吧~ #! /usr/bin/env python # -*- coding:utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtCore import Qt from PyQt5.QtGui import QPalette, QBrush, QPixmap class NoBorderWindow(QWidget): def __init__(

  • pyqt5实现按钮添加背景图片以及背景图片的切换方法

    简介 对与控件QPushButton中的可以使用setStyleSheet设置它背景图片.具体设置背景图片的方法有两种 self.button.setStyleSheet("QPushButton{background-image: url(img/1.png)}") 然而对于这种方法背景图片无法进行边框的自适应,可以使用下面的方法 self.button.setStyleSheet("QPushButton{border-image: url(img/1.png)}&quo

  • PyQt5 实现给窗口设置背景图片的方法

    QPalette类可以十分简单的达到设置窗口背景图片的目的 def use_palette(self): self.setWindowTitle("设置背景图片") window_pale = QtGui.QPalette() window_pale.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QPixmap("F:\A_code\PyQT_Demo\\back_ground.png"))) self.set

  • jQuery动态移除和添加背景图片的方法详解

    本文实例讲述了jQuery动态移除和添加背景图片的方法.分享给大家供大家参考,具体如下: 利用jQuery移除和添加图片 1.样式 <style type="text/css"> .changeImage{ background:url(images/right.png) no-repeat center; } </style> 2.JS (1)在改变标签的样式,需要移除之前添加的样式 $("#tab tr").find("td&q

  • Java Swing实现窗体添加背景图片的2种方法详解

    本文实例讲述了Java Swing实现窗体添加背景图片的2种方法.分享给大家供大家参考,具体如下: 在美化程序时,常常需要在窗体上添加背景图片.通过搜索和测试,发现了2种有效方式.下面分别介绍. 1. 利用JLabel加载图片 利用JLabel自带的setIcon(Icon icon)加载icon,并设置JLabel对象的位置和大小使其完全覆盖窗体.这是一个很取巧的办法,代码非常简单,如下所示. JLabel lbBg = new JLabel(imageIcon); lbBg.setBound

  • 关于在HTML网页制作中如何添加背景图片

    我们通常使用background来添加网页的背景图 效果图: background-image:url(图片地址) ; 这个是定义背景图片,但是注意,url可以是一个网页图片的链接地址,也可以是本机保存的图片,但是对于本机保存的图片,这里是一定一定要注意是url中的图片路径是以该CSS文件为参照对象,简单做法,可以直接将图片放置在和css文件相同的文件夹里,就可以直接引用url(图片名称.jpg即可) 放置方法示例: 代码引用: 其他的简单用法介绍: background-repeat: no-

  • 校内网css代码添加背景图片常用代码

    序号 中文说明 标记语法 备注 1 背景颜色 {background-color:数值} 2 背景图片 {background-image: url(URL)|none} 3 背景重复 {background-repeat:inherit|no-repeat|repeat|repeat-x|repeat-y} 4 背景固定 {background-attachment:fixed|scroll} 5 背景定位 {background-position:数值|top|bottom|left|rig

  • 易语言修改窗口的背景图片与显示方式

    底图属性  数据类型:字节集:本属性指定显示在窗口背景上的图片. 底图方式属性 数据类型:整数型:如果设定了底图,本属性指定窗口背景上底图的显示方式. 可供选择的属性值: 0.图片居左上 1.图片平铺 2.图片居中 例程 说明 底图属性用于获取和设置窗口背景图片. 更改窗口底图在窗口上显示的方式为改变底图方式组合框现行选中的项目. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关

  • C#怎么给PDF添加背景图片

    今天要实现的是给PDF文件添加图片背景这个功能.PDF是近年来最流行的文件之一,无论是办公还是日常生活中都经常会用到,很多时候,PDF文件的背景色都是白色,看多了难免觉得累,更换PDF的背景不仅可以让眼睛看起来更舒服,还可以让PDF文件看上去更美观.如何实现?作为一名程序猿,当然要亲自"操刀上阵",这篇文章我主要写的是如何使用C# 给PDF文件添加图片背景. 这是我准备的PDF文件: 代码使用: 第一步:创建一个Visual C#控制台项目,添加引用并使用命名空间. using Sys

随机推荐