我有一个 3 列的 QGridLayout,像这样创建
self.my_grid = QGridLayout()
self.my_grid.setColumnStretch(2, 0)
用 10 个项目填充网格后,它看起来像预期的那样:
X X X
X X X
X X X
X
在某些事件中,网格项目发生变化,我尝试删除所有项目并添加新项目:
def updateGrid(self, taskList):
# delete existing items from grid
for i in reversed(range(self.my_grid.count())):
widgetToRemove = self.my_grid.itemAt(i).widget()
widgetToRemove.setParent(None)
widgetToRemove.deleteLater()
# add new buttons
for task in tasklist:
btn = QPushButton(task)
self.my_grid.addWidget(btn)
但随后它显示一个空单元格,如下所示:
X X
X X X
X X X
X X
再次调用 updateGrid 后,它有两个空单元格,如下所示:
X
X X X
X X X
X X X
最后,在再次强制更新后,我得到了我的预期:
X X X
X X X
X X X
X
如何避免空单元格?