是的,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()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)