您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:PyQt5 实现给无边框widget窗口添加背景图片

51自学网 2021-10-30 22:51:57
  python
这篇教程PyQt5 实现给无边框widget窗口添加背景图片写得很实用,希望能帮到您。

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

#! /usr/bin/env python# -*- coding:utf-8 -*-import sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtCore import Qtfrom 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: 默认原图大小,窗口空余部分不补充

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


基于pykeyboard的用法说明
解决PyQt5 无边框后窗口的移动问题
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。