Mil*_*Tom 2 python tkinter python-3.x
这是我的代码:
from tkinter import *
root = Tk()
a = Button(text=str(1))
a.place(x=100, y=100)
widget_x, widget_y = a.winfo_rootx(), a.winfo_rooty()
print(widget_x, widget_y)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
输出始终是0 0. 这是为什么?我该如何解决它?
该值为零,因为您在窗口可见之前获取了坐标。您可以通过以下两种方法之一解决此问题:直到主循环启动后才获取坐标(使用after_idle),或者通过调用 强制将窗口绘制到屏幕上update。
例子:
from tkinter import *
root = Tk()
a = Button(text=str(1))
a.place(x=100, y=100)
root.update()
widget_x, widget_y = a.winfo_rootx(), a.winfo_rooty()
print(widget_x, widget_y)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4853 次 |
| 最近记录: |