首页 > 解决方案 > 如何在子类中使用“setStyleSheet”

问题描述

我是 Python 新手,经过长时间的休息后再次学习编码。因此,如果这是微不足道的(几乎可以肯定是),请原谅。

我正在尝试创建 QWidget 的子类,以便更轻松地设置背景颜色(当然还有其他未来的东西)。

我有两个例子,一个有效,另一个无效。我想“修复”没有的那个。

任务是创建一个带有红色背景的窗口。

(注意。我是英国人,因此在我的定制中使用颜色而不是颜色)

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys

class MainWindow(QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        cw1 = QWidget()
        cw1.setAutoFillBackground(True)
        cw1.setStyleSheet("background-color: Red;")

        self.setCentralWidget(cw1)

app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()

在这个版本中,我将 QWidget 子类化以允许颜色参数

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys

class ColourW(QWidget):

    def __init__(self, colour, *args, **kwargs):
        super(ColourW, self).__init__(*args, **kwargs)

        self.setAutoFillBackground(True)
        self.setStyleSheet("background-color: {colour};")

class MainWindow(QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        cw1 = ColourW('red')
        self.setCentralWidget(cw1)


app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()

非常感谢任何帮助。

标签: pythonpyqtpyqt5

解决方案


推荐阅读