我是靠谱客的博主 威武水杯,最近开发中收集的这篇文章主要介绍Pyqt5设置窗口背景的3种方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

内容来自于《PyQT5快速开发与实战》
窗口背景主要包括:背景颜色和背景图片

1.使用QSS设置窗口背景

如果要给控件设置背景图片或图片,可以使用setIcon()或setPixmap()来完成。

1.1 使用setStyleSheet()设置窗口背景图片

# -*- coding=utf-8 -*-
from PyQt5.QtWidgets import QMainWindow, QApplication
import sys

app = QApplication(sys.argv)
window = QMainWindow()
window.setObjectName("MainWindow")
window.setStyleSheet("#MainWindow{border-image:url(background.jpg)}") # 这里使用相对路径,也可以使用绝对路径
window.show()
sys.exit(app.exec_())

运行截图:
在这里插入图片描述

1.2 使用setStyleSheet()设置窗口背景色

# -*- coding=utf-8 -*-
from PyQt5.QtWidgets import QMainWindow, QApplication
import sys

app = QApplication(sys.argv)
window = QMainWindow()
window.setObjectName("MainWindow")
window.setStyleSheet("#MainWindow{background-color:green}")
window.show()
sys.exit(app.exec_())

运行截图:
在这里插入图片描述

2.使用QPalette(调色板)设置窗口背景

2.1使用QPalette设置窗口背景色

# -*- coding=utf-8 -*-
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtGui import QPalette
from PyQt5.QtCore import Qt
import sys

app = QApplication(sys.argv)
window = QMainWindow()
palette = QPalette()
palette.setColor(QPalette.Background, Qt.red)
window.setPalette(palette)
window.show()
sys.exit(app.exec_())

运行截图:
在这里插入图片描述

2.2使用QPalette设置窗口背景图片

如果背景图片大小大于窗口,则图片会平铺窗口;否则会加载多个背景图片。可以调整图片的分辨率,或者调整窗口的大小来达到自己想要的效果。

# -*- coding=utf-8 -*-
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtGui import QPalette, QBrush, QPixmap
import sys

app = QApplication(sys.argv)
window = QMainWindow()
palette = QPalette()
palette.setBrush(QPalette.Background, QBrush(QPixmap("./background.jpg")))
window.setPalette(palette)
window.show()
sys.exit(app.exec_())

运行截图:
在这里插入图片描述

3.使用paintEvent设置窗口背景

3.1使用paintEvent设置窗口背景色

# -*- coding=utf-8 -*-
from PyQt5.QtWidgets import QMainWindow, QApplication,QWidget
from PyQt5.QtGui import QPalette, QBrush, QPixmap, QPainter
from PyQt5.QtCore import Qt
from PyQt5 import QtGui
import sys


class Winform(QWidget):
    def __init__(self, parent=None):
        super(Winform, self).__init__(parent)
        self.setWindowTitle("使用QPaintEvent设置窗口背景色")

    def paintEvent(self, a0: QtGui.QPaintEvent) -> None:
        painter = QPainter(self)
        painter.setBrush(Qt.red)
        painter.drawRect(self.rect())

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

运行截图:
在这里插入图片描述

3.1使用paintEvent设置窗口背景图片

# -*- coding=utf-8 -*-
from PyQt5.QtWidgets import QMainWindow, QApplication,QWidget
from PyQt5.QtGui import QPalette, QBrush, QPixmap, QPainter
from PyQt5.QtCore import Qt
from PyQt5 import QtGui
import sys


class Winform(QWidget):
    def __init__(self, parent=None):
        super(Winform, self).__init__(parent)
        self.setWindowTitle("使用QPaintEvent设置窗口背景图片")

    def paintEvent(self, a0: QtGui.QPaintEvent) -> None:
        painter = QPainter(self)
        pixmap = QPixmap("./background.jpg")
        painter.drawPixmap(self.rect(), pixmap)

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

运行截图:
在这里插入图片描述

最后

以上就是威武水杯为你收集整理的Pyqt5设置窗口背景的3种方法的全部内容,希望文章能够帮你解决Pyqt5设置窗口背景的3种方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部