customtkinter. Один виджет на нескольких закладках

Пишу десктопное приложение. Создал customtkinter.CTkTabview с 4 закладкам. На всех 4-х закладках разная информация, но должно быть одно общее поле - customtkinter.CTkTextbox. Т.е. в CTkTextbox будет отображаться одна и та же информация. Какую бы из 4-х закладок не открыть, в одном и том же месте должен стоять CTkTextbox, с постоянной информацией. Прошу помощи в реализации. Достаточно просто совета, но и от кусочка кода не откажусь! С уважением, Tracki!


Ответы (1 шт):

Автор решения: Donovan

Кажется, что самым простым и не громоздким решением будет - создание нового экземпляра TextBox при нажатии на определенную вкладку и передачи текста со старого метода в новый, вот простая реализация:

import customtkinter as ctk

win = ctk.CTk()
win.geometry("400x400")

# Tabview function
def tabviewFunc(): 
    global textbox 

    textbox.pack_forget() # Удаление с вкладки старого TextBox

    tab = tabview.get() # Получение текущей вкладки
    text = textbox.get('0.0', ctk.END) # Получение текста TextBox

    textbox = ctk.CTkTextbox(tabview.tab(tab)) # Создание нового TextBox
    textbox.pack()

    textbox.insert("0.0", text) # Передача текста в новый TextBox

# Tabview
tabview = ctk.CTkTabview(win, command = tabviewFunc)
tabview.pack(padx=20, pady=20)

tabview.add("tab 1")  
tabview.add("tab 2")  
tabview.add("tab 3")
tabview.add("tab 4")

tabview.set("tab 1")  

# Textbox 
textbox = ctk.CTkTextbox(tabview.tab("tab 1"))
textbox.pack()

win.mainloop()
→ Ссылка