我有一个带有布局设置的顶级小部件和另外两个小部件添加到该布局,当我为它们着色时我只看到顶级小部件颜色,但我喜欢在顶部看到子小部件。这是我尝试过的,但它只是显示一个蓝色的QWidget,我期待红色和绿色的小部件一个在另一个之上
def set_color(widget, color):
p = widget.palette()
p.setColor(widget.backgroundRole(), color)
widget.setPalette(p)
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget,QVBoxLayout
app = QApplication([])
win = QWidget()
win.show()
win.resize(1920,1080)
vlayout = QVBoxLayout()
win.setLayout(vlayout)
set_color(win, Qt.blue)
mod_group = QWidget()
mod_layout = QHBoxLayout()
mod_group.setLayout(mod_layout)
vlayout.addWidget(mod_group)
set_color(mod_group, Qt.red)
mod_group.show()
audio_group = QWidget()
audio_layout = QHBoxLayout()
vlayout.addWidget(audio_group)
audio_group.setLayout(audio_layout)
set_color(audio_group, Qt.green)
audio_group.show()
窗口小部件是可见的,但您使用的背景颜色与父窗口小部件相同,因此正确应用它们必须启用autoFillBackground属性:
mod_group.setAutoFillBackground(True)
audio_group.setAutoFillBackground(True)