python tkinter button

"""
这是一个小游戏的程序,每当鼠标放在按钮上(不是点击按钮),按钮会自动跳到另外一个位置(在窗口范围内),提问在注释里
"""
from tkinter import *
import random


def newxy(xy):
    nw = random.randint(1, 440)
    while abs(xy - nw) < 50:  #这里为什么要小于50?按钮的默认尺寸是多少?
        nw = random.randint(1, 440)
    return nw


def domove(ev):
    global x, y
    x = newxy(x)
    y = newxy(y)
    bt.place(x=x, y=y)

wn = Tk()
wn.geometry("500x500")
wn.title("Catch me!")
bt = Button(wn, text="Catch me!")
bt.bind("", domove)
x = y = 10
bt.place(x=x, y=y)
random.seed()
wn.mainloop()

不设置width,默认宽度是文本的长度+pdx(文本与按钮边框的距离)*2
注意: 默认的button是text类型, width, heigth表示字符个数和行数

这个按钮大概是70x30,50感觉也有问题,需要小于30的值,随机的新坐标值才可能让光标停留在按钮上

  1. 指定 Button 中文本的字体
  2. 一个 Button 只能设置一种字体
  3. 默认值由系统指定
    abs(xy - nw) 的值大于50,按钮移动的效果才明显。
你可以参考下这篇文章:Python Tkinter里取回button 回调函数的变量

因为如果小于50的话,按钮移动比较小,肉眼可能看不出来,就失去了效果,所以要移动距离长一点,这个参数是可以调理的

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632