PyQt5 – 如何改变主窗口的背景颜色

  • Post category:Python

PyQt5是一个流行的Python GUI工具包,它包含了大量的GUI组件,可以帮助开发者快速制作美观、交互性强的GUI程序。

改变PyQt5主窗口的背景颜色是一个常见的需求,下面将带领大家通过两个示例,讲解如何实现这一目标。

1. 使用QSS改变窗口背景颜色

QSS是一种Qt样式表语言,可以用于美化PyQt5界面的外观。我们可以使用QSS来改变PyQt5主窗口的背景颜色。

import sys
from PyQt5.QtWidgets import QApplication, QWidget

# 创建应用程序和窗口
app = QApplication(sys.argv)
win = QWidget()

# 设置窗口背景颜色
win.setStyleSheet("background-color: blue;")

# 显示窗口
win.show()

# 运行应用程序
sys.exit(app.exec_())

在上述示例中,我们使用了setStyleSheet()方法来为窗口设置背景颜色。该方法使用QSS语言,其中background-color属性表示窗口的背景颜色。这里我们将背景颜色设置为蓝色,你可以根据需要设置任何颜色。

2. 使用paintEvent方法改变窗口背景颜色

另一种方法是使用paintEvent()方法在程序运行时动态绘制窗口背景。该方法需要继承QMainWindowQWidget类。

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QApplication, QMainWindow

# 继承QMainWindow类
class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 设置窗口标题和大小
        self.setWindowTitle('Change Background Example')
        self.setGeometry(200, 200, 400, 300)

    # 重写paintEvent方法
    def paintEvent(self, event):
        painter = QPainter(self)
        painter.setBrush(QColor(255, 0, 0))  # 设置画刷颜色
        painter.drawRect(self.rect())  # 用画刷绘制矩形

# 创建应用程序和窗口
app = QApplication(sys.argv)
win = MyWindow()

# 显示窗口
win.show()

# 运行应用程序
sys.exit(app.exec_())

在上述示例中,我们继承了QMainWindow类,并重写了paintEvent()方法。在该方法中,我们使用QPainter类创建了一个画刷,并绘制了一个矩形。这个矩形就是窗口的背景。在调用QPainter.drawRect()方法时,我们传递了self.rect()作为参数,表示绘制的范围为整个窗口。

以上两种方法都可以用于改变PyQt5主窗口的背景颜色。你可以根据需要选择任何一种方法来实现你想要的效果。