好的,我试图找到Tkinter正在使用的框架,然后取其宽度和高度并调整窗口大小,以便一切都很合适,不会留下丑陋的空间。到目前为止,我已经得到了以下...将字符串转换为Tkinter笔记本框架
convert = {"tab1_name", "tab1"; "tab2_name", "tab2"; "tab3_name", "tab3") ##(it goes on)
a = mainframe.tab(mainframe.select(), "text")
b = convert[a]
w = b.winfo_reqwidth()
h = b.winfo_reqheight()
mainframe.configure(width=w, height=h)
在笔记本每一帧的名称是TAB1,TAB2,TAB3等,但对他们的标签是独一无二的,因为它们描述的标签会发生什么。我希望能够从转换字典函数中获取字符串并将其用作框架的名称。我不确定这个框架是一个类还是其他的。有没有办法将字符串b转换为框架的名称,并以某种方式在.winfo_reqheight()中使用它?我不希望有使该说的事......
if b=="tab1":
w = tab1.winfo_reqwidth()
h = tab1.winfo_reqheight()
mainframe.configure(width=w, height=h)
每个帧,因为我想这是很容易,而无需添加这么多的代码,添加新的帧。
谢谢
哇,谢谢你完美的作品。在真正的代码中,我有正确的字典,我只是试图快速得到一个例子,而我弄糟了语法。感谢您发现错误。 – 007 2014-11-08 15:12:29
Ya,当我发现我可以将对象,甚至是用户创建的对象放在列表中时,我的代码将从100行缩减到15,以实现特定功能。我喜欢它。它可以让你在任何东西上使用for-loop! – Kory 2014-11-08 15:54:16
在Python中,* everything *是一个对象。对象是你可以放在一个集合中的所有东西。 – 2014-11-09 08:00:01