【发布时间】:2020-11-07 02:34:01
【问题描述】:
我正在尝试通过删除其标题栏来创建一个窗口。当用户使用鼠标单击并拖动时,我使窗口移动。现在,如果我在任何小部件内单击并拖动,窗口就会移动。但我想让它只有在用户点击小部件外部时才移动。任何建议都会有所帮助。这是我的代码。
from tkinter import *
win = Tk()
win.geometry('200x200')
win.overrideredirect(True)
offsetx = 0
offsety = 0
lst = ['Sample 1', 'Sample 2', 'Sample 3', 'Sample 4']
def drag(event):
x = win.winfo_pointerx() - win.offsetx
y = win.winfo_pointery() - win.offsety
win.geometry('+{x}+{y}'.format(x=x,y=y))
def click(event):
win.offsetx = event.x
win.offsety = event.y
win.bind('<Button-1>', click)
win.bind('<B1-Motion>', drag)
lb1 = Listbox(win)
lb1.pack()
b1 = Button(win, text='Close', command=win.destroy).pack()
for i in range(len(lst)):
lb1.insert(i, lst[i])
win.mainloop()
【问题讨论】:
-
尝试设置一个容器,也许是 Frame,做你为赢得框架所做的事情,比如绑定、列表框、按钮……
-
@JasonYang 我已经尝试过你所说的。它的行为仍然与以前相同。
-
我觉得你应该搞错了,给你看一个脚本。