博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PyQt5之设置窗口背景
阅读量:3958 次
发布时间:2019-05-24

本文共 3479 字,大约阅读时间需要 11 分钟。

PyQt5之设置窗口背景

窗口背景主要包括:背景色和背景图片。设置窗口背景主要有三种方法:

  • 使用QSS设置窗口背景;
  • 使用QPalette设置窗口背景;
  • 实现paintEvent,使用QPainter绘制背景。

一、使用QSS设置窗口背景

  1. 使用setStyleSheet()设置窗口背景图片:
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QMainWindow):    def __init__(self):        super().__init__()        self.resize(500,500)        self.setWindowTitle('设置窗口背景图片')        self.setObjectName('win')#设置窗口名,相当于CSS中的ID        self.setStyleSheet('#win{border-image:url(python.jpg);}')#设置图片的相对路径if __name__ == "__main__":    app = QApplication(sys.argv)    form = Demo()    form.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

  1. 使用setStyleSheet()设置窗口背景色:
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QMainWindow):    def __init__(self):        super().__init__()        self.resize(500,500)        self.setWindowTitle('设置窗口背景色')        self.setObjectName('win')#设置窗口名,相当于CSS中的ID        self.setStyleSheet('#win{background-color:blue;}')#设置窗口背景颜色if __name__ == "__main__":    app = QApplication(sys.argv)    form = Demo()    form.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述


二、使用QPalette设置窗口背景

  1. 使用QPalette(调色板)设置窗口背景色:
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QMainWindow):    def __init__(self):        super().__init__()        self.resize(500,500)        self.setWindowTitle('设置窗口背景色')        palette = QPalette()        palette.setColor(QPalette.Background,Qt.red)#设置窗口背景颜色        self.setPalette(palette)if __name__ == "__main__":    app = QApplication(sys.argv)    form = Demo()    form.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

  1. 使用QPalette设置窗口背景图片:
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QMainWindow):    def __init__(self):        super().__init__()        #self.resize(500,500)   # 背景图片的宽度和高度大于窗口的高度和宽度        self.resize(600, 600)  # 背景图片的宽度和高度小于窗口的高度和宽度        self.setWindowTitle('设置窗口背景图片')        palette = QPalette()        palette.setBrush(QPalette.Background,QBrush(QPixmap('python.jpg')))        self.setPalette(palette)if __name__ == "__main__":    app = QApplication(sys.argv)    form = Demo()    form.show()    sys.exit(app.exec_())

图1为背景图片宽度和高度小于窗口高度和宽度,图2为背景图片宽度和高度大于窗口高度和宽度:

在这里插入图片描述


三、使用paintEvent设置窗口背景

  1. 使用paintEvent设置窗口背景色:
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QMainWindow):    def __init__(self):        super().__init__()        self.resize(500,500)        self.setWindowTitle('设置窗口背景色')    def paintEvent(self, event):        painter = QPainter(self)        painter.setBrush(Qt.black)  #设置背景色为黑色        painter.drawRect(self.rect())if __name__ == "__main__":    app = QApplication(sys.argv)    form = Demo()    form.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

  1. 使用paintEvent设置窗口背景图片:
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QMainWindow):    def __init__(self):        super().__init__()        self.resize(500,500)        self.setWindowTitle('设置窗口背景图片')    def paintEvent(self, event):        painter = QPainter(self)        painter.drawPixmap(self.rect(),QPixmap('python.jpg'))  #设置窗口背景图片,平铺到整个窗口,随着窗口的变化而变化if __name__ == "__main__":    app = QApplication(sys.argv)    form = Demo()    form.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

转载地址:http://wxozi.baihongyu.com/

你可能感兴趣的文章