Pyside:在 QVBoxLayout 小部件中设置行的背景

Posted

技术标签:

【中文标题】Pyside:在 QVBoxLayout 小部件中设置行的背景【英文标题】:Pyside: setting the background of a row in a QVBoxLayout widget 【发布时间】:2014-05-17 18:34:05 【问题描述】:

我有一个 QVBoxLayout 小部件,它有几行,每行包含几个按钮。在一个事件中,我想通过更改其背景来突出显示其中一行。我尝试了许多不同的方法,但都没有奏效。实现这一目标的好方法是什么?

【问题讨论】:

QVBoxLayout widget with a few rows, each containing several buttons -> 你确定不是在寻找 QGridLayout 吗?无论哪种方式,您是否在相应的小部件上尝试过setStyleSheet("background-color: black;");,您可以将黑色更改为您想要的颜色? 我尝试的几乎所有东西都会出现这种错误:AttributeError: 'PySide.QtGui.QVBoxLayout' object has no attribute 'setStyleSheet' 是的,因为该属性适用于 QWidgets。布局不是小部件。您将需要设置,例如在您的按钮或它们的容器小部件(如果有)的循环中。 好的。你能提供一个简单的例子供我学习吗? 如果你能提供你的 vbox 结构会更有用,然后人们可以更准确、更有用地为后代指出它。虽然,我不是蟒蛇大师。 【参考方案1】:

您可以在所需行中的小部件上执行以下操作,将黑色替换为您希望拥有的颜色:

myWidget.setStyleSheet("background-color: black;");

【讨论】:

以上是关于Pyside:在 QVBoxLayout 小部件中设置行的背景的主要内容,如果未能解决你的问题,请参考以下文章

QSS 不适用于 QVBoxLayout 中(复合小部件)中的第一个 QSizeGrip

如何在 QVBoxLayout 中为更改小部件位置设置动画

QVBoxLayout 间距

在 PyQt5/Pyside2 中动态添加小部件到流布局

Pyside 在 QtabWidget 中获取小部件

在 GUI 应用程序中定位小部件 (PySide)