@Sheud_z

Можно ли использовать ttk.notebook в ttk.notebook?

Можно ли использовать ttk.Notebook в ttk.Notebook?

Для примера предоставлю вот такой код:

tab_control = ttk.Notebook(root)
tab1 = ttk.Frame(tab_control)  
tab2 = ttk.Frame(tab_control)
tab_control.add(tab1, text='TEST1')
tab_control.add(tab2, text='TEST2')

rage_par = ttk.Notebook(tab2)
tab11 = ttk.Frame(rage_par)  
tab22 = ttk.Frame(rage_par)
tab_control.add(tab11, text='TEST')
tab_control.add(tab22, text='TEST')

tab_control.pack(expand=1, fill='both')
tab_control.place(x=0, y=30)

rage_par.pack(expand=1, fill='both')
rage_par.place(x=0, y=80)

код выдает вот такую ошибку:

self.tk.call(self._w, "add", child, *(_format_optdict(kw)))
_tkinter.TclError: can't add .!notebook.!frame5.!notebook.!frame as slave of .!notebook
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
Viktor_T2
@Viktor_T2
python developer
Во-первых вы используете сразу два менеджера геометрии, pack и place,
- это не правильно, оставьте один из двух.
Во вторых вы запутались что во что вы вставляете.
Вот работающий:
spoiler
import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry('600x400+200+100')

tab_control = ttk.Notebook(root)
tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)
tab_control.add(tab1, text='TEST1')
tab_control.add(tab2, text='TEST2')


rage_par = ttk.Notebook(tab1)
tab11 = ttk.Frame(rage_par)
tab22 = ttk.Frame(rage_par)
rage_par.add(tab11, text='TEST')   # вот где лажа
rage_par.add(tab22, text='TEST')


tab_control.pack(expand=1, fill='both')
# tab_control.place(x=0, y=30)

rage_par.pack(expand=1, fill='both')


root.mainloop()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы