内容来自于《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_())
运行截图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200423205749195.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FTQ0VfUw==,size_16,color_FFFFFF,t_70)
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_())
运行截图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200423210239863.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FTQ0VfUw==,size_16,color_FFFFFF,t_70)
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_())
运行截图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200423210808434.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FTQ0VfUw==,size_16,color_FFFFFF,t_70)
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_())
运行截图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042321123192.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FTQ0VfUw==,size_16,color_FFFFFF,t_70)
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_())
运行截图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200423214559725.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FTQ0VfUw==,size_16,color_FFFFFF,t_70)
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_())
运行截图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200423214820879.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FTQ0VfUw==,size_16,color_FFFFFF,t_70)
|