如何灰顯(停用)Tkinter Frame?
Tkinter 框架小元件可以包含一組小元件。我們可以透過啟用或停用其基礎框架的狀態來更改框架中元件的狀態。要停用該特定框架內所有的小元件,我們必須使用 winfor_children() 選擇位於該框架內的所有子小元件並使用 state=(‘disabled’ or ‘enable’) 屬性更改狀態。
示例
在此示例中,我們將建立一個按鈕和一個輸入小元件。最初,輸入小元件的狀態被停用。但是當我們單擊按鈕時,它將啟用框架中的所有小元件。
#Import the required Libraries from tkinter import * from tkinter import ttk #Define a Function to enable the frame def enable(children): for child in children: child.configure(state='enable') #Create an instance of tkinter frame win = Tk() #Set the geometry of tkinter frame win.geometry("750x250") #Creates top frame frame1 = LabelFrame(win, width= 400, height= 180, bd=5) frame1.pack() #Create an Entry widget in Frame2 entry1 = ttk.Entry(frame1, width= 40) entry1.insert(INSERT,"Enter Your Name") entry1.pack() entry2= ttk.Entry(frame1, width= 40) entry2.insert(INSERT, "Enter Your Email") entry2.pack() #Creates bottom frame frame2 = LabelFrame(win, width= 150, height=100) frame2.pack() #Create a Button to enable frame button1 = ttk.Button(frame2, text="Enable", command=lambda: enable(frame1.winfo_children())) button1.pack() for child in frame1.winfo_children(): child.configure(state='disable') win.mainloop()
輸出
執行上述程式碼將顯示一個包含兩個標籤框架的視窗。每個框架都包含一個輸入小元件和一個用於啟用或停用框架的按鈕。
當我們單擊“啟用”按鈕時,它將啟用 Frame1。
廣告