我有一个顶层小部件,其中包含一个布局集,并且还向该布局中添加了2个其他小部件,当我为它们全部着色时,我只会看到顶层小部件颜色,但我想在顶部看到子级小部件。这是我尝试过的方法,但是它只显示一个蓝色的QWidget,我期望红色和绿色的Widget相互重叠
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()
答案 0 :(得分:3)
这些小部件可见,但是您使用的背景色与父级小部件相同,因此要正确应用它们,您必须启用autoFillBackground属性:
mod_group.setAutoFillBackground(True)
audio_group.setAutoFillBackground(True)