python - python tkinter - 如何使 ttk Notebook 选项卡更改其顺序?
解决方案
是的,有可能。您必须绑定B1-Motion
到一个函数,然后用于notebook.index("@x,y")
在鼠标位置获取选项卡的索引。然后,您可以使用notebook.insert()
插入特定位置。
import tkinter as tk
from tkinter import ttk
def reorder(event):
try:
index = notebook.index(f"@{event.x},{event.y}")
notebook.insert(index, child=notebook.select())
except tk.TclError:
pass
root = tk.Tk()
root.geometry("500x500")
notebook = ttk.Notebook(root)
notebook.pack(fill="both", expand=True)
notebook.bind("<B1-Motion>", reorder)
frame1 = ttk.Frame(notebook)
frame2 = ttk.Frame(notebook)
frame1.pack(fill='both', expand=True)
frame2.pack(fill='both', expand=True)
notebook.add(frame1, text='Stackoverflow')
notebook.add(frame2, text='Github')
root.mainloop()
输出:
推荐阅读
- java - 如何从 DialogFragment 获取值?
- xaml - XAML 网格未按预期工作 列表视图不显示
- swiftui - 如何将 RandomAccessCollection 与 ForEach 列表一起使用?
- reactjs - 使用 react-chartjs-2 的折线图图例边框样式
- java - 在托管 bean 上执行资源 *(spring bean)* 注入时发生错误
- mysql - Docker Compose 和 Mysql 不在本地主机上运行
- r - 在函数中指定方面的问题
- asp.net - 使用枚举列扩展身份表
- python - TypeError:只能将元组(不是“str”)连接到元组。小部件的问题
- azure - 是否可以以编程方式取消 Azure DevOps 管道作业?