Tkinter:鼠标拖动无边界的窗口,例如。覆盖直接(1)

Tkinter:鼠标拖动无边界的窗口,例如。覆盖直接(1),第1张

Tkinter:鼠标拖动无边界的窗口,例如。覆盖直接(1)

是的,Tkinter提供了足够的功能来执行此 *** 作,并且不,没有更简单/更高级的方法来实现您想要的 *** 作。您几乎有正确的想法。

这不是一个唯一的示例,但这不是唯一的方法:

import tkinter as tkclass App(tk.Tk):    def __init__(self):        tk.Tk.__init__(self)        self.floater = FloatingWindow(self)class FloatingWindow(tk.Toplevel):    def __init__(self, *args, **kwargs):        tk.Toplevel.__init__(self, *args, **kwargs)        self.overrideredirect(True)        self.label = tk.Label(self, text="Click on the grip to move")        self.grip = tk.Label(self, bitmap="gray25")        self.grip.pack(side="left", fill="y")        self.label.pack(side="right", fill="both", expand=True)        self.grip.bind("<ButtonPress-1>", self.start_move)        self.grip.bind("<ButtonRelease-1>", self.stop_move)        self.grip.bind("<B1-Motion>", self.do_move)    def start_move(self, event):        self.x = event.x        self.y = event.y    def stop_move(self, event):        self.x = None        self.y = None    def do_move(self, event):        deltax = event.x - self.x        deltay = event.y - self.y        x = self.winfo_x() + deltax        y = self.winfo_y() + deltay        self.geometry(f"+{x}+{y}")app=App()app.mainloop()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存