Tkinter更改按钮的坐标和大小

时间:2017-12-16 03:08:35

标签: python tkinter

我想知道如何更改按钮的坐标和大小。我知道你可以做button1.pack(side=RIGHT)但如果我想说button1.pack(x=100, y=40)怎么办?我试过了button1.geometry,但是没有用。

答案: 我做了button1.place(x=0, y=0),按钮转到了顶角。 如果有人好奇,这是我使用的代码:

from tkinter import *

t = Tk()

t.title("Testing")

t.geometry("250x250")

MyButton = Button(t, text="Click Me")

MyButton.pack()

def Clicked(event):

    MyButton.place(x=0, y=0)

MyButton.bind("<Button-1>" ,Clicked)

MyButton.pack()

t.mainloop()

1 个答案:

答案 0 :(得分:1)

Tkinter有三个布局管理器

您可以将x,yplace()一起使用,但是您不应该使用其他自动计算位置的管理员,当您使用pack()手动输入内容时,他们可能会遇到问题。

但您可以Frame(使用place())并使用Frame内的其他管理员

pack()grid()更受欢迎,因为它们会在您更改尺寸或在不同系统上使用时自动计算位置。

几天前为其他问题创建的示例。

ButtonFrame移动到随机位置。

编辑:现在Button将自己移动到随机位置并更改高度。

import tkinter as tk
import random

# --- function ---

def move():
    #b.place_forget() # it seems I don't have to use it 
                      # to hide/remove before I put in new place
    new_x = random.randint(0, 100)
    new_y = random.randint(0, 150)
    b.place(x=new_x, y=new_y)

    b['height'] = random.randint(1, 10)

# --- main ---

root = tk.Tk()

b = tk.Button(root, text='Move it', command=move)
b.place(x=0, y=0)

root.mainloop()