Я читаю структуру папок для игры, где каждая учетная запись имеет подпапки для серверов, а затем подпапки для персонажей, а в папках персонажей есть текстовый файл.
То, что я пытаюсь создать с помощью tkinter и ttk в моем корневом окне, составляет 1tab / frame для каждой учетной записи и под каждой учетной записью 1 вкладка для каждого сервера, а затем 1 вкладка для каждого символа, где я, наконец, помещу текст из каждого файла символов .
Поскольку я читаю это из файловой системы, количество учетных записей, серверов и символов может различаться, поэтому я перебираю их, чтобы создать объекты виджета tkinter.
Проблема в том, что я не могу понять, как привязать каждый объект к имени, чтобы я мог сравнивать / изменять значения объектов после того, как они созданы, чтобы просто иметь по 1 вкладке на сервер, например, где все символы ставить.
Я пробовал поискать в Google, но не могу найти то, что ищу. До сих пор я пытался создать класс для каждого файла, который я буду читать, и этот класс содержит всю необходимую информацию. Но я застреваю при создании объектов tkinter и пытаюсь понять, как это сделать.
Это мой класс, из которого я успешно создаю экземпляр со всей информацией, заполняемой для каждого файла, хотя они находятся в списке объектов без связанного имени / переменной:
class MacroObject(object):
def __init__(self, name, realm, account, path):
self.account = account
self.realm = realm
self.name = name
self.path = path
self.macroName = ''
self.macroText = []
И это мой текущий подход к созданию графического интерфейса:
root = tk.Tk()
tabControl = ttk.Notebook(root)
tabControl.pack()
account_tabs = []
realm_tabs = []
character_tabs = []
accounts = []
realms = []
for objects in macro_objects:
if objects.account not in accounts:
tabControl.add(ttk.Frame(tabControl), text=objects.account)
accounts.append(objects.account)
for objects in macro_objects:
if objects.account == ttk.Frame.text and objects.realm not
Это то место, где я застреваю, и последняя строка, очевидно, не сработает, создается экземпляр ttk.Frame, и, похоже, я никак не могу сослаться на него, и я не могу понять, как его решить.
Я все еще начинающий, так что, наверное, это глупый вопрос, и, возможно, есть гораздо более простой подход для этого?