我正在阅读一个游戏的文件夹结构,其中每个帐户都有服务器的子文件夹,然后是角色的子文件夹,并且在角色文件夹中有一个文本文件。
我要在我的根窗口中使用tkinter和ttk创建的对象是每个帐户1个标签/帧,每个帐户下每个服务器1个标签,然后每个字符1个标签,最后我将从每个字符文件放文本
由于我是从文件系统中读取此信息的,因此帐户,服务器和字符的数量可能会有所不同,因此我将遍历这些内容以创建tkinter小部件对象。
问题是我无法弄清楚如何将每个对象绑定到名称,因此我可以在创建对象后进行比较/修改对象的值,以便每个服务器只有一个选项卡,例如所有字符都位于放。
我尝试了谷歌搜索,但似乎找不到我想要的东西。到目前为止,我已经尝试为将要读取的每个文件创建一个类,并且该类包含所有必要的信息。但是在创建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 = []
这是我当前创建gui的方法:
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似乎没有办法让我引用它,而且我似乎无法弄清楚如何解决它。 / p>
我仍然还是一个初学者,所以我猜这可能是一个愚蠢的问题,并且可能有更简单的方法吗?
答案 0 :(得分:0)
我的问题得到了解决,这要归功于Martineau的提醒/使我意识到我可以将小部件存储在字典中。
我将MacroObject类实例中的值用作键,过了一会儿,我得到了ttk笔记本选项卡层次结构所需的结果: https://i.imgur.com/IsNmXiO.png