Python Gtk Grid 删除所有行

Python Gtk Grid removing all rows

我认为这对我来说很容易,但我试图从 Gtk.Grid 中删除所有行(以用不同长度的新数据填充它)但仍然有问题。 我试过如下,行=0或1,改变行(行=行+1)或不改变行,因为我不知道在删除上面的行后做什么,试过'!= None ' 或没有 '!=None' 和其他选项,但仍然没有:

row=0
while(self.grid.get_child_at(1,row)!=None):
    self.grid.remove_row(row)
    row=row+1

我得到的只是从网格中删除一行。 我也尝试删除整个网格,但在创建小部件之前删除小部件时出现问题(开始时)

if (self.grid):
    {remove}

对我不起作用。我必须补充一点,网格不是在程序的主要部分填充的(并且我试图删除它)。

首先,如果要显示数据,请使用 GtkTreeView/Store。这是制作的,用于显示超过 100 个项目的数据和规模。

骇人听闻的方法: 另一种选择可能是只破坏网格,这反过来又会破坏它的孩子。但老实说,这只会隐式执行上述循环。您也可以将上述循环包装在一个函数中并调用它。

    while True:
        if self.grid.get_child_at(0,1)!= None:
            self.grid.remove_row(1)
        else:
            break

当然,如果您只有第 1 列或更大的子项,这将不起作用。您也必须搜索这些(self.grid.get_child_at(1,1)、self.grid.get_child_at(2,1) 等)。