好的,我試圖找到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