【问题标题】:Tkinter Toplevel() positioning without static geometry没有静态几何的 Tkinter Toplevel() 定位
【发布时间】:2017-06-15 23:18:30
【问题描述】:

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

这是我现在使用的:

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

如何在窗口几何图形中只放置格式设置?还是他们有更好的方法?

【问题讨论】:

  • helpwindow.geometry("+{0}+{1}".format(...)) - 即。 helpwindow.geometry("+200+200")

标签: python tkinter python-3.5 toplevel


【解决方案1】:

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

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()

【讨论】:

  • 我试过了,但我删除了 {0} 之前的 +,认为它就像在 print('text' + variable) 中一样使用。知道这很简单。谢谢
猜你喜欢
  • 1970-01-01
  • 2012-04-20
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 1970-01-01
相关资源
最近更新 更多