作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 Tkinter 中使用 grid_location
方法,来自 Grid Geometry Manager,但似乎我做错了什么。
这是我的代码:
from tkinter import *
root = Tk()
b=Button(root, text="00")
b.grid(row=0, column=0)
b2=Button(root, text="11")
b2.grid(row=1, column=1)
b3=Button(root, text="22")
b3.grid(row=2, column=2)
b4=Button(root, text="33")
b4.grid(row=3, column=3)
b5=Button(root, text="44")
b5.grid(row=4, column=4)
def mouse(event):
print(event.x, event.y)
print(root.grid_location(event.x, event.y))
root.bind("<Button-1>", mouse)
root.mainloop()
当我在按钮外部单击时,它起作用了,但是当我在任何按钮内部单击时,似乎每个按钮都有自己的坐标系。因此,每个按钮都位于 (0, 0) 单元格上,尽管在代码中,它们位于规则网格上。
最佳答案
您说得对,每个按钮“都有自己的坐标系”。不过,更准确地说,event.x
和 event.y
值是相对于与事件关联的小部件而不是小部件的父窗口或根窗口。
如果您确实需要小部件所在的行和列,您可以使用 grid_info
获取与事件关联的小部件的行和列。例如:
def mouse(event):
grid_info = event.widget.grid_info()
print("row:", grid_info["row"], "column:", grid_info["column"])
关于python - 根据 "grid_location"方法,按钮有自己的坐标系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6101709/
我正在尝试在 Tkinter 中使用 grid_location 方法,来自 Grid Geometry Manager,但似乎我做错了什么。 这是我的代码: from tkinter import
我是一名优秀的程序员,十分优秀!