【问题标题】:How can I show overlapping QWidgets with Pyqt5?如何使用 Pyqt5 显示重叠的 QWidget?
【发布时间】:2019-08-07 02:08:55
【问题描述】:

我有一个带有布局集的顶级小部件和添加到该布局的其他 2 个小部件,当我为它们全部着色时,我只看到顶级小部件颜色,但我希望看到顶部的子小部件。这是我尝试过的,但它只显示一个蓝色 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()

【问题讨论】:

    标签: python pyqt pyqt5


    【解决方案1】:

    小部件可见,但您使用的背景颜色与父小部件相同,因此要正确应用它们,您必须启用 autoFillBackground 属性:

    mod_group.setAutoFillBackground(True)
    audio_group.setAutoFillBackground(True)
    

    【讨论】:

      猜你喜欢
      • 2020-06-07
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      • 2017-03-06
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多