为了账号安全,请及时绑定邮箱和手机立即绑定

QWidget 中的布局在添加拉伸时使背景变为白色

QWidget 中的布局在添加拉伸时使背景变为白色

宝慕林4294392 2022-06-14 09:56:52
我使用 PyQt5 和它的样式系统来为我的应用程序创建一个现代外观的 GUI,但我似乎无法做到这一点。所以我有一个所有工作的服装标题栏。它有 3 个部分;一个菜单栏、一个标签和另一个菜单栏,用作关闭、最小化和最大化的标题栏按钮。我需要此标题栏为浅灰色,但如下图所示,元素之间存在空白。现在是什么:应该是什么:当您运行下面的示例时,您可以看到标签之间有一些空白区域。即使标签在没有样式的框内,样式也是在小部件上设置的。#### PyQt imports....from PyQt5.QtCore import Qtfrom PyQt5.QtWidgets import (QWidget, QHBoxLayout, QMenuBar, QApplication,                            QLabel, QVBoxLayout)#### Python imports....import sys#### Class for sampleWindow....class sampleWindow(QWidget):    def __init__(self):        super().__init__()        #### Some window settings....        self.setWindowTitle('Sample Program')        self.setGeometry(400, 300, 1000, 500)        ######## THE SAME PROBLEM BUT THIS TIME NOT IN A QMENUBAR ########        #### Creating the widget and it's layout....        parentLayout = QHBoxLayout()        parentWidget = QWidget()        #### Creating the elements....        sampleLabelLeft = QLabel('left')        sampleLabelCenter = QLabel('center')        sampleLabelRight = QLabel('right')        #### Setting alignment for the elements....        sampleLabelLeft.setAlignment(Qt.AlignLeft)        sampleLabelCenter.setAlignment(Qt.AlignCenter)        sampleLabelRight.setAlignment(Qt.AlignRight)        #### Adding the elements to the parentLayout....        parentLayout.addWidget(sampleLabelLeft)        parentLayout.addWidget(sampleLabelCenter)        parentLayout.addWidget(sampleLabelRight)        #### Setting parentLayout as layout for parentWidget....        parentWidget.setLayout(parentLayout)        #### Set styling for elements....        self.setStyleSheet('QWidget{background:blue;} QLabel{background:red;}')因此,在此之后,我将 QWidget 的背景颜色设置为浅灰色,并且忽略了拉伸。有谁知道这个的解决方法?
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

默认情况下,布局具有 style-dependent spacing,因此针对您的情况的解决方案是将其设置为 0:


# ...

parentLayout = QHBoxLayout()

parentLayout.setSpacing(0)

# ...


查看完整回答
反对 回复 2022-06-14
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

我发现设置背景小部件解决了这个问题:


parentWidget = QWidget()

label_background = QLabel(parentWidget)

label_background.setFixedSize(1920, 1080)


查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号