如何解决如何通过在Tkinter笔记本中拖放来对标签进行重新排序
我创建了一个带有标签的笔记本,我想通过拖放来重新排列标签。
我尝试创建一个示例,其中拖动了不是在笔记本中创建的按钮,但拖动了在笔记本中创建的选项卡。
import tkinter as tk
from tkinter import ttk
import Tkdnd
def make_draggable(widget):
widget.bind("<Button-1>",on_drag_start)
widget.bind("<B1-Motion>",on_drag_motion)
def on_drag_start(event):
print "on_drag_start: "
print "widget event: ",event
print "widget: ",event.widget
widget = event.widget
widget._drag_start_x = event.x
widget._drag_start_y = event.y
def on_drag_motion(event):
print "on_drag_motion: "
print "widget event: ",event
widget = event.widget
x = widget.winfo_x() - widget._drag_start_x + event.x
y = widget.winfo_y() - widget._drag_start_y + event.y
print "tuple: ",x,y
widget.place(x=x,y=y)
root = tk.Tk()
root.title("Tab Widget")
btn = tk.Button(text="testing")
btn.pack()
make_draggable(btn)
tabControl = ttk.Notebook(root)
tab1 = ttk.Frame(tabControl)
tab2 = ttk.Frame(tabControl)
tabControl.add(tab1,text='Tab 1')
tabControl.add(tab2,text='Tab 2')
tabControl.pack(expand=1,fill="both")
make_draggable(tab1)
make_draggable(tab2)
tab1.bind("<Button-1>",on_drag_start)
tab1.bind("<B1-Motion>",on_drag_motion)
tab2.bind("<Button-1>",on_drag_start)
tab2.bind("<B1-Motion>",on_drag_motion)
ttk.Label(tab1,text="Welcome to \GeeksForGeeks").grid(column=0,row=0,padx=30,pady=30)
ttk.Label(tab2,text="Lets dive into the\world of computers").grid(column=0,pady=30)
root.mainloop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。