Я создаю приложение To-Do List в Python, используя tkinter, в основном используя виджет Notebook
в ttk
.
Итак, я хочу, чтобы над ноутбуком был блокнотвесь экран.Есть вкладки для ноутбука.Когда нажата кнопка «НОВАЯ ЗАДАЧА», она должна создать новые Tab
, Scroll Bar
и Text Box
, с созданием новой вкладки и над ней Scroll Bar
и Text Box
.
Однако позже я хотел бы добавить функциональность, в которой пользователь из списка дел может нажать кнопку и удалить ОДНУ вкладку, ее текстовое поле и полосу прокрутки.Или нажмите кнопку, в которой будет изменен ТОЛЬКО ОДИН ТЕКСТОВЫЙ ЯЩИК на ЭТОЙ ОДНОЙ вкладке, а не любые другие вкладки.Например, нажав кнопку, установив текст в ТОТ ОДНОЙ вкладке и ТОГО ОДНОГО ТЕКСТА в центре, или изменив его шрифт.
Я предполагаю, что для того, чтобы иметь эту функцию, мне нужно создатьФункция связана с кнопкой «NEW TASK», которая создаст новую вкладку со всеми этими элементами.
Однако я не уверен, как установить новую переменную для каждого из этих элементов.Например, пользователь нажимает кнопку, и он создает Task1, Text1 и Scroll1 и устанавливает эти переменные для вновь созданных объектов.И затем, когда кнопка будет нажата снова, новые переменные будут установлены на вновь созданные объекты, называемые Task2, Text2 и Scroll2.И мне также нужен способ для вызова этих конкретных объектов.
Я бы хотел добиться этого с помощью переменной, словаря, списка или массива, но так как я очень плохо знаком с Python и tkinterв общем, я не уверен, как это сделать.Заранее большое спасибо, и я надеюсь, что у вас или у всех, кто читает это, отличный день!
Вот мой код:
from tkinter import *
from tkinter import ttk
from tkinter.scrolledtext import ScrolledText
import tkinter as tk
from tkinter import Menu, filedialog
root = Tk()
root.title('To - Do List')
root.state('zoomed')
rows = 0
while rows < 50:
root.rowconfigure(rows, weight = 1)
root.columnconfigure(rows, weight = 1)
rows = rows + 1
class Everything:
def __init__(self, font, justify, size):
self.font = font
self.justify = justify
self.size = size
def CreateNewTaskFunction(self):
ttk.frame()
Notebook.add(ttk.frame(), text = 'First Note')
# --------------------------------------------------------------------------------------------------------
x = 1
def NewInstance():
global x
NewTaskDictionary = {"Task1":"Task1", "Task2":"Task2", "Task2":"Task2", "Task3":"Task3", "Task4":"Task4", "Task5":"Task5", "Task6":"Task6", "Task7":"Task7", "Task8":"Task8"}
NewTaskDictionary["Task" + str(x)] = Notebook.add(ttk.Frame(), text = 'Welcome To Your Notes: Click Here')
NewTxtDictionary = {"Txt1":"Txt1", "Txt2":"Txt2", "Txt3":"Txt3", "Txt4":"Txt4", "Txt5":"Txt5", "Txt6":"Txt6", "Txt7":"Txt7", "Txt8":"Txt8"}
NewTxtDictionary["Txt" + str(x)] = tk.Text(NewTaskDictionary["Task" + str(x)])
NewTxtDictionary["Txt" + str(x)].grid(column = 1, row = 2, columnspan = 48, rowspan = 47, sticky = 'NESW')
NewScrollDictionary = {"Scroll1":"Scroll142432423", "Scroll2":"Scroll2", "Scroll3":"Scroll3", "Scroll4":"Scroll4", "Scroll5":"Scroll5", "Scroll6":"Scroll6"}
NewScrollDictionary["Scroll" + str(x)] = tk.Scrollbar(NewTaskDictionary["Task" + str(x)])
NewScrollDictionary["Scroll" + str(x)].grid(column = 50, row = 2, rowspan = 46, sticky = 'NESW')
NewTxtDictionary["Txt" + str(x)]['yscrollcommand'] = NewScrollDictionary["Scroll" + str(x)].set
print(NewScrollDictionary["Scroll" + str(x)])
NewScrollDictionary["Scroll" + str(1)] = "81290830912830912830912903"
y = NewScrollDictionary["Scroll1"]
print(y)
x += 1
style = ttk.Style()
current_theme =style.theme_use()
style.theme_settings(current_theme, {"TNotebook.Tab": {"configure": {"padding": [20, 5], "background" : "white"}}})
style.theme_settings(current_theme, {"TNotebook" : {"configure" : {"tabposition" : "wn", "padding" : (0, 5)}}})
style.theme_settings(current_theme, {"TNotebook.Window" : {"configure" : {"width" : 500}}})
Notebook = ttk.Notebook(root)
Notebook.grid(row = 1, column = 0, columnspan = 50, rowspan = 49, sticky = 'NESW')
Photo2 = PhotoImage(file="Add Task Image Button.png")
NewTaskButton = Button(root, image=Photo2, borderwidth=0, highlightthickness=0, command = NewInstance).grid(row=0, column=45, columnspan = 5, sticky="e", ipady = [5])
Photo1= PhotoImage(file="Final Logo.png")
Label(image=Photo1, borderwidth=0, highlightthickness=0).grid(row=0, column=0, sticky=W, ipady = [5])
# Defaults
root.mainloop()