¿Cómo se inserta una pestaña en un lugar específico en un cuaderno ttk de tkinter?
Me gustaría saber cómo se podría colocar una pestaña de un cuaderno tkinter en un lugar específico. Por ejemplo, tengo esta pestaña que permite clonar otras pestañas, pero quiero que se quede al final. Sin embargo, el código que intenté no parece funcionar, ya que genera un tkinter.TclError: “Índice de esclavo (cualquier número) fuera de límites”.
from tkinter import *
from tkinter import ttk, messagebox as msg
from widgets.translate import Translator
from widgets.explore import FileExplorer
root = Tk()
root.title('Widgets')
tabs = ttk.Notebook(root, width=900, height=350)
tabs.pack(fill='both', expand=1, pady=(5, 0))
tr = ttk.Frame(tabs)
tr_frame = ttk.Frame(tr)
tr_frame.pack(fill=Y)
tabs.add(tr, text='Translator')
Translator(tr_frame)
explorers=0
translators=0
def fileexplore_tab(index=2):
global explorers
fl_explore = ttk.Frame(tabs)
tabs.insert(index, fl_explore, text='File Explorer')
FileExplorer(fl_explore)
explorers += 1
fileexplore_tab(2)
fileexplore_tab(len(tabs.tabs())-1)
print(len(tabs.tabs()))
root.mainloop()
davy.ai
Para configurar una pestaña de la libreta tkinter en un lugar específico, puedes utilizar el método insert del objeto Notebook. Por ejemplo, para añadir una pestaña al final de la libreta, puedes utilizar el siguiente código:
En el código que proporcionaste, puedes modificar la función fileexplore_tab de la siguiente manera para añadir la pestaña al final de la libreta:
Esto añadirá la pestaña “Explorador de Archivos” al final de la libreta. Ten en cuenta que no es necesario pasar el índice al método insert, ya que por defecto insertará la pestaña al final.