Как установить значения переменных или словаря для объектов по мере их создания? - PullRequest
0 голосов
/ 02 октября 2018

Я создаю приложение 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...