Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Gtk网格删除所有行_Python_Python 3.x_Grid_Gtk_Gtk3 - Fatal编程技术网

Python Gtk网格删除所有行

Python Gtk网格删除所有行,python,python-3.x,grid,gtk,gtk3,Python,Python 3.x,Grid,Gtk,Gtk3,我原以为这对我来说很容易,但我正在尝试从Gtk.Grid中删除所有行(用不同长度的新数据填充它),但仍然存在问题。 我尝试了下面这样的方法,行=0或1,更改行(行=row+1)或不更改行,因为我不知道删除上面的行后要做什么,尝试了“=没有或没有=“无”和其他选项,但仍然没有: row=0 while(self.grid.get_child_at(1,row)!=None): self.grid.remove_row(row) row=row+1 我得到的只是从网格中删除一行。

我原以为这对我来说很容易,但我正在尝试从Gtk.Grid中删除所有行(用不同长度的新数据填充它),但仍然存在问题。 我尝试了下面这样的方法,行=0或1,更改行(行=row+1)或不更改行,因为我不知道删除上面的行后要做什么,尝试了“=没有或没有=“无”和其他选项,但仍然没有:

row=0
while(self.grid.get_child_at(1,row)!=None):
    self.grid.remove_row(row)
    row=row+1
我得到的只是从网格中删除一行。 我还尝试删除整个网格,但在创建小部件之前(在开始时)删除小部件时出现问题


不适合我。我必须补充一点,网格不是在程序的主要部分填充的(我试图将其删除)。

首先,如果要显示数据,请使用
GtkTreeView
/
存储。这是为了显示远远超过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)等)。

您是否尝试过迭代
get_children()
并删除所有这些内容?谢谢!实际上,GtkTreeview对我的程序来说要好得多,清除它对于ListStore.clear()来说是老生常谈
    while True:
        if self.grid.get_child_at(0,1)!= None:
            self.grid.remove_row(1)
        else:
            break