Tkinter Toplevel()定位没有静态几何

时间:2017-01-30 17:36:28

标签: python tkinter python-3.5 toplevel

我正在使用Toplevel()弹出窗口,我希望弹出窗口出现时会显示在鼠标右侧。我发现如何做到这一点,但只能通过指定窗口的几何形状。如何在不指定大小的情况下控制窗口的出现位置。我希望窗口的大小是它要显示的数据所需的大小。

这就是我现在正在使用的:

helpwindow = Toplevel()
helpwindow.overrideredirect(1)
helpwindow.geometry("662x390+{0}+{1}".format(event.x_root - 1, event.y_root - 12))

如何只在窗口几何体中放置格式设置?或者他们是更好的方式?

1 个答案:

答案 0 :(得分:2)

使用不含大小的"+{}+{}"

helpwindow.geometry("+{}+{}".format(event.x_root - 1, event.y_root - 12))

即。移动窗口:)

import tkinter as tk

def move():
    global pos_x

    helpwindow.geometry("+{}+200".format(pos_x))
    pos_x += 10

    root.after(100, move)

root = tk.Tk()

pos_x = 0    
helpwindow = tk.Toplevel()
move()

root.mainloop()