【发布时间】:2017-02-02 20:00:15
【问题描述】:
我有 ttk.Notebook 类的笔记本小部件。在此笔记本中,我添加了许多选项卡:
notebook.add(child=my_object, text='my tab')
如何获取选项卡对象而不是选项卡名称?
更新 1
所以,有儿童词典。好的,这带来了下一个问题。
我真正想做的是亲手接触笔记本中活动选项卡的对象。所以我有这个:
notebook.children[notebook.select().split('.')[2]])
但它看起来很丑。不幸的是,select() 返回的小部件名称与 children[] 中的小部件名称格式不完全相同。是否有任何方法可以可靠地将一种格式转换为另一种格式,或者 split() 在这种情况下永远不会失败?
这是问题的演示:
#!/usr/bin/env python3
from tkinter import *
from tkinter.ttk import *
class App(Tk):
def __init__(self):
super().__init__()
notebook = Notebook(self)
notebook.add(child=Frame(notebook), text='tab1')
notebook.add(child=Frame(notebook), text='tab2')
notebook.add(child=Frame(notebook), text='tab3')
notebook.pack()
print('Tabs are: ', notebook.children.keys())
print('Active tab: ', notebook.select())
print(type(notebook.children[notebook.select().split('.')[2]]))
App().mainloop()
【问题讨论】:
-
将
my_object赋值给变量并使用这个变量。