Python 如何在tkinter中移动带有按钮的帧?

Python 如何在tkinter中移动带有按钮的帧?,python,tkinter,int,Python,Tkinter,Int,我做了一个按钮,如果我按下它,x轴加上50。如果我按下按钮,它不移动,是的,它改变了值,但不移动。我尝试了一个while循环,但它使程序崩溃。通常我们使用pack和grid几何体管理器来处理Tk中的小部件放置。但是,如果要显式控制放置,则可以使用place,它允许您以像素或相对坐标指定位置 下面是一个框架的示例,框架内有一个按钮,单击按钮时按钮会移动。请注意,按钮是相对于其父容器定位的,因此会随框架移动 import tkinter as tk import tkinter.ttk as ttk

我做了一个按钮,如果我按下它,x轴加上50。如果我按下按钮,它不移动,是的,它改变了值,但不移动。我尝试了一个while循环,但它使程序崩溃。

通常我们使用
pack
grid
几何体管理器来处理Tk中的小部件放置。但是,如果要显式控制放置,则可以使用
place
,它允许您以像素或相对坐标指定位置

下面是一个框架的示例,框架内有一个按钮,单击按钮时按钮会移动。请注意,按钮是相对于其父容器定位的,因此会随框架移动

import tkinter as tk
import tkinter.ttk as ttk

class App(ttk.Frame):
    def __init__(self, master, **kwargs):
        super(App, self).__init__(master=master, **kwargs)
        master.wm_geometry('640x480')
        self.frame = f = tk.Frame(self, width=200, height=80, relief=tk.SUNKEN, borderwidth=2)
        b = ttk.Button(f, text="Move", command=self.move_frame)
        b.place(x=2, y=2)
        f.place(x=2, y=2)
        self.place(relheight=1.0, relwidth=1.0)

    def move_frame(self):
        x = self.frame.winfo_x()
        x = x + 10
        self.frame.place(x=x)

def main():
    root = tk.Tk()
    app = App(root)
    root.mainloop()

if __name__ == '__main__':
    main()

欢迎来到堆栈溢出。请在问题中包含您的代码,以便用户能够识别您的实现中的任何问题。是的,我知道如何使用.pack或.grid,但唯一的问题是当我加上x轴或y轴时,它根本不移动