PyQt - QGridLayout 设置第一行样式表
PyQt - QGridLayout set first Row stylesheet
我正在生成一个网格布局并按如下方式添加小部件:
elements = QGroupBox()
self.grid = QGridLayout(elements)
#Arrange Row Elements
self.grid.addWidget(subjectName, 0, 0)
self.grid.addWidget(statusName, 0, 1)
我想在第一行(不是行内的小部件)有一个 background-color,以指示网格的 header .
我想要的结果:
您可以在设置样式表时使用 QObjects 属性来区分单元格。
可以使用例如
setProperty( "coloredcell", true )
在添加到 QGridLayout 的小部件上结合
parentWidget.setStyleSheet("*[coloredcell=\"true\"] {background-color:rgb(" + QString::number((rand() % 255)) + "," + QString::number((rand() % 255)) + "," + QString::number((rand() % 255)) + ");}");
其中 parentWidget 是包含 QGridLayout 的 Widget。
要在单个单元格的整个范围内设置背景颜色,您必须向 QGridLayout 添加一个中间 QWidget,设置 属性,向中间 QWidget 添加一个中间布局,然后,您可以在 table 中添加您想查看的小部件。
如果没有中间小部件,如果将 "coloredcell" 属性 设置为实际小部件本身(在我的示例中为 QPushButton),只会更改此小部件的背景颜色,不会更改整个 QGridLayout 单元格的颜色。这就是我们需要它的原因。
示例代码(未经测试):
widget = QWidget()
gridLayout = QGridLayout(widget)
for i in range(0,3):
for j in range(0,3):
intermediateWidget = QWidget(widget)
intermediateWidget.setProperty("coloredcell", true)
intermediateLayout = QGridLayout( intermediateWidget )
button = QPushButton( QString( "Row %1 Col %2" ).arg(i).arg(j) )
gridLayout.addWidget(intermediateWidget, i, j)
widget.setStyleSheet("*[coloredcell=\"true\"] {background-color:rgb(255,0,0);}")
widget.show()
我正在生成一个网格布局并按如下方式添加小部件:
elements = QGroupBox()
self.grid = QGridLayout(elements)
#Arrange Row Elements
self.grid.addWidget(subjectName, 0, 0)
self.grid.addWidget(statusName, 0, 1)
我想在第一行(不是行内的小部件)有一个 background-color,以指示网格的 header .
我想要的结果:
您可以在设置样式表时使用 QObjects 属性来区分单元格。
可以使用例如
setProperty( "coloredcell", true )
在添加到 QGridLayout 的小部件上结合
parentWidget.setStyleSheet("*[coloredcell=\"true\"] {background-color:rgb(" + QString::number((rand() % 255)) + "," + QString::number((rand() % 255)) + "," + QString::number((rand() % 255)) + ");}");
其中 parentWidget 是包含 QGridLayout 的 Widget。
要在单个单元格的整个范围内设置背景颜色,您必须向 QGridLayout 添加一个中间 QWidget,设置 属性,向中间 QWidget 添加一个中间布局,然后,您可以在 table 中添加您想查看的小部件。
如果没有中间小部件,如果将 "coloredcell" 属性 设置为实际小部件本身(在我的示例中为 QPushButton),只会更改此小部件的背景颜色,不会更改整个 QGridLayout 单元格的颜色。这就是我们需要它的原因。
示例代码(未经测试):
widget = QWidget()
gridLayout = QGridLayout(widget)
for i in range(0,3):
for j in range(0,3):
intermediateWidget = QWidget(widget)
intermediateWidget.setProperty("coloredcell", true)
intermediateLayout = QGridLayout( intermediateWidget )
button = QPushButton( QString( "Row %1 Col %2" ).arg(i).arg(j) )
gridLayout.addWidget(intermediateWidget, i, j)
widget.setStyleSheet("*[coloredcell=\"true\"] {background-color:rgb(255,0,0);}")
widget.show()