您好我有一個關於tkinter中的標籤的問題。Python tkinter標籤
當您使用標籤外類,你這樣做
import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text = "something", background = "something")
label.pack()
然而,當它是一個類內部和代碼都像
進口Tkinter的傳統知識
class Example(tk.Frame):
COLOURS = [ "#f45", "#ee5", "#aa4", "#a1e433", "#e34412", "#116611",
"#111 eeefff", "#3aa922191", "#abbabbaaa" ]
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.parent = parent
col = 1
for colour in Example.COLOURS:
#
label = tk.Label(self, text=colour, background=colour)
#
label.grid(row=1, column=col)
col += 1
def main():
root = tk.Tk()
ex = Example(root)
root.geometry("+300+300")
root.mainloop()
if __name__ == '__main__':
main()
但它不應該像
label = tk.Label(self.parent, text=colour, background=colour)
因爲self.parent會對應根? 當我嘗試這樣做時,出現一個錯誤,我只有當我在它下面有 label.grid(...)行時纔會發生錯誤(我試過打包並且工作正常)。
所以我想這個代碼
import tkinter as tk
root = tk.Tk()
label = tk.Label(root)
label.grid(row=0, column=0)
root.mainloop()
將不能工作,但它實際上工作得很好。 所以我很困惑。誰能解釋一下?
哦,因爲我從tk.Frame類繼承我所做的類是自動的框架?或者在ex .__ init__裏初始化Frame類實際上返回一個框架對象? –
此外,我實際上忘了提到在這個例子中,根(tk.Tk())被傳遞給父參數(你可能知道它)。 –
是的,這是一個框架,因爲你從'Frame'繼承。 –