Tkinter Python:一次移动多个小部件
如果我在一个框架内有多个小部件,有没有一种方法可以用命令一次移动所有小部件的位置?我正在使用.place管理器。谢谢 我会定义变量Tkinter Python:一次移动多个小部件,python,tkinter,Python,Tkinter,如果我在一个框架内有多个小部件,有没有一种方法可以用命令一次移动所有小部件的位置?我正在使用.place管理器。谢谢 我会定义变量ref_y和ref_y,然后将它们添加到我当前的x和y值中,如下所示: import tkinter as tk root = tk.Tk() ref_x = 40 ref_y = 56 btn = tk.Button(root, text="Button") lbl = tk.Label(root, text="Label") btn.place(x=ref
ref_y
和ref_y
,然后将它们添加到我当前的x
和y
值中,如下所示:
import tkinter as tk
root = tk.Tk()
ref_x = 40
ref_y = 56
btn = tk.Button(root, text="Button")
lbl = tk.Label(root, text="Label")
btn.place(x=ref_x + 45, y=ref_y + 13)
lbl.place(x=ref_x + 13, y=ref_y + 44)
root.mainloop()
在上述示例中,
btn
和lbl
将与ref\u x
和ref\u y
一起放置。这意味着,如果要将小部件放置在其他位置,保持它们彼此的相对位置,只需修改ref\u x
和ref\u y
值。如果在Frame
中有all,则可以移动Frame
,它将随着所有元素一起移动
使用place\u-forget()
将其从窗口中移除,再次使用place()
将其置于新位置
import tkinter as tk
import random
# --- funtions ---
def move():
# hide frame
f.place_forget()
# random positiom
new_x = random.randint(0, 100)
new_y = random.randint(0, 150)
# show in new place
f.place(x=new_x, y=new_y)
# --- main ---
root = tk.Tk()
f = tk.Frame(root)
f.place(x=0, y=0)
tk.Label(f, text='HELLO!').pack()
tk.Button(f, text='Move it', command=move).pack()
root.mainloop()
您可以一次移动所有元素的
Frame
,也可以单独移动每个元素。用place\u-forget()
删除Frame
(或每个元素),然后用place()
重新放置。我建议您多解释一下您试图实现的目标。如果您觉得需要将一组小部件作为一个整体移动,那么可能有比使用place
更好的解决方案。