Я работаю над ноутбуком и выполнил следующий код:
from tkinter import *
from tkinter import ttk
import tkinter as tk
class Notebook:
def __init__(self,title):
self.root = Tk()
self.root.title(title)
self.notebook = ttk.Notebook(self.root)
self.add_tab()
self.run()
def add_tab(self):
#Add initial tabs
frame_notebook_1 = ttk.Frame(self.notebook)
frame_notebook_2 = ttk.Frame(self.notebook)
frame_notebook_new=ttk.Frame(self.notebook)
self.notebook .add(frame_notebook_1, text = '--1--')
self.notebook .add(frame_notebook_2, text = '--2--')
self.notebook .add(frame_notebook_new, text = ' + ')
self.notebook.pack(expand=True, fill='both')
#Configurate " + " tab
self.new_tab_save_value = tk.StringVar(frame_notebook_new)
self.new_tab_entry = tk.Entry(frame_notebook_new, textvariable=self.new_tab_save_value,font=('Verdana',10))
self.new_tab_entry.grid(row=2, column=3,sticky="EW")
self.new_tab_entry.config(width=17)
self.button_new = tk.Button(frame_notebook_new, text="Create", command=self.new_tab_return)
self.button_new.grid(row=3, column=3,sticky="NSEW")
self.button_new.config(width=17)
def new_tab_return(self):
#method to generate a new tab
frame = ttk.Frame(self.notebook)
self.notebook.add(frame,text="--"+str(len([self.notebook.tab(i, option="text") for i in self.notebook.tabs()]))+"--")
label = ttk.Label(frame,text=self.new_tab_save_value.get())
label.grid(column=1,row=1)
self.notebook.select(len([self.notebook.tab(i, option="text") for i in self.notebook.tabs()])-1)
def run(self):
self.root.mainloop()
nb = Notebook('Test')
У меня есть несколько вопросов по этому поводу.
ПЕРВЫЙ ВОПРОС: можно ли изменить порядок вкладок в тетрадь? В самом деле, я бы хотел, чтобы вкладка «+» всегда была в последней позиции.
ВТОРОЙ ВОПРОС: Когда программа генерирует новую вкладку, ее имя кадра просто «frame». Можно ли автоматически изменить имя переменной, например, на frame_ "tabnumber"? На самом деле, я бы хотел поработать над этими кадрами позже, так что будет нелегко, если у них у всех одинаковое имя:)
Заранее спасибо и извините за большую грязную программу ^^