我正在尝试创建一列按钮,当按下这些按钮时,一行显示的网格会弹出另外两个按钮。
for i in tlist:
opl.append(Tk.Button(self.frame, width = 12 , text=i[3],command = lambda:self.pressedop(i[2], a)))
opl[a].grid(row=a, column=0, columnspan=2)
a = a + 1
成功创建一列按钮,正确显示text(i[3])
,但按下按钮时,i[2]
将是最后一个按钮的信息,而最后一个按钮的行将为+1。
有没有办法可以通过i[2]
并将其自己的grid_info
传递下去?
答案 0 :(得分:1)
我不明白您的问题,但您可以使用widget.grid_forget()从几何管理器中删除小部件。如果你想要它在另一行,只需要widget.grid()和新的行和列。一个简单的例子
try:
import Tkinter as tk ## Python 2.x
except ImportError:
import tkinter as tk ## Python 3.x
from functools import partial
opl = []
top = tk.Tk()
def move_it(num):
for ctr in range(num, 5):
opl[ctr].grid_forget()
opl[ctr].grid(row=6, column=ctr)
for but_num in range(5):
opl.append(tk.Button(top, width = 12 , text=str(but_num),
command = partial(move_it, but_num)))
opl[-1].grid(row=but_num, column=0, columnspan=2)
top.mainloop()