Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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 从tkinter中的网格中删除小部件_Python_Python 3.x_Tkinter - Fatal编程技术网

Python 从tkinter中的网格中删除小部件

Python 从tkinter中的网格中删除小部件,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我在tkinter框架中有一个网格,显示查询结果。它有一个手动更改的日期字段,然后将日期用作这些结果的查询参数。每次更改日期时,结果显然都会更改,从而产生不同数量的行。问题是,如果第二次执行该操作时得到的行数较少,那么第一次查询的结果仍将位于这些行下面,这将非常混乱 我的问题是,如何从帧中删除行号大于6的所有行(无论其中包含什么) 顺便说一下,我正在运行Python 3.3.3。提前谢谢 在小部件上调用方法grid\u forget,将从窗口中删除该方法- 本例使用父级上的调用grid\u sl

我在tkinter框架中有一个网格,显示查询结果。它有一个手动更改的日期字段,然后将日期用作这些结果的查询参数。每次更改日期时,结果显然都会更改,从而产生不同数量的行。问题是,如果第二次执行该操作时得到的行数较少,那么第一次查询的结果仍将位于这些行下面,这将非常混乱

我的问题是,如何从帧中删除行号大于6的所有行(无论其中包含什么)


顺便说一下,我正在运行Python 3.3.3。提前谢谢

在小部件上调用方法
grid\u forget
,将从窗口中删除该方法- 本例使用父级上的调用
grid\u slaves
查找所有 小部件映射到网格,然后调用
grid\u info
了解 每个小部件的位置:

>>> import tkinter
# create: 
>>> a = tkinter.Tk()
>>> for i in range(10):
...    label = tkinter.Label(a, text=str(i))
...    label.grid(column=0, row=i)
# remove from screen:
>>> for label in a.grid_slaves():
...    if int(label.grid_info()["row"]) > 6:
...       label.grid_forget()

请发布一些代码,让我了解您是如何设置代码的,这样响应才有意义。另外,请参阅Brian Oakley的回答,该回答与您的要求基本一致,不是吗?太棒了!这正是我想要的!但问题是,如果我不知道小部件的名称,我怎么能做到这一点呢?上面截取的部分正好说明:它根本不使用任何python端对小部件的引用,而是通过方法调用检索小部件及其位置。(当然,您需要对父窗口小部件的引用)从2020年开始,这仍然是一个非常可行的选择。干得好@jsbueno。