python - PyQt5:无法设置来自不同文件的类
问题描述
我正在从 QWidget 扩展我自己的类。当样式和类在同一个文件中时,对其进行样式设置没有问题。
主文件
from PyQt5 import QtWidgets
from widgets import HistoryWidget, RandomBtn
class MainWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
hw = HistoryWidget()
btn = RandomBtn()
layout = QtWidgets.QGridLayout()
layout.addWidget(hw)
layout.addWidget(btn)
self.setLayout(layout)
self.setGeometry(0, 0, 400, 400)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
main = MainWindow()
main.show()
stylesheet = """
MainWindow {
background-color: #1c1c1c;
}
HistoryWidget {
background-color: #cadd45;
}
QLabel {
color: white;
}
RandomBtn {
background-color: #cadd45;
}
"""
app.setStyleSheet(stylesheet)
app.exec()
但是,当类来自不同的文件时,它似乎在样式中找不到该元素(类)
小部件.py
from PyQt5 import QtWidgets, QtCore
class HistoryWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.setLayout(QtWidgets.QGridLayout())
l = QtWidgets.QLabel("Hello")
self.layout().addWidget(l)
self.setFixedSize(QtCore.QSize(100, 100))
class RandomBtn(QtWidgets.QPushButton):
def __init__(self):
super().__init__()
self.setFixedSize(QtCore.QSize(100, 100))
您可以看到按钮受到影响,但小部件没有受到影响。知道该怎么做吗?谢谢