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()