如何使 Tkinter 框架变灰(禁用)?

tkinterserver side programmingprogramming

Tkinter 框架小部件可以包含一组小部件。我们可以通过启用或禁用其底层框架的状态来更改框架中小部件的状态。要禁用该特定框架内的所有小部件,我们必须使用 winfor_children()  选择位于该框架内的所有子小部件,并使用 state=(‘disabled’ 或 ‘enable’) 属性更改状态。

示例

在此示例中,我们将创建一个按钮和一个条目小部件。最初,条目小部件的状态为禁用。但是当我们点击按钮时,它将启用框架中的所有小部件。

#导入所需的库
from tkinter import *
from tkinter import ttk

#定义一个函数来启用框架
def enable(children):
   for child in children:
      child.configure(state='enable')

#创建 tkinter 框架实例
win = Tk()

#设置 tkinter 框架的几何形状
win.geometry("750​​x250")

#创建顶部框架
frame1 = LabelFrame(win, width= 400, height= 180, bd=5)
frame1.pack()

#在 Frame2 中创建一个 Entry 小部件
entry1 = ttk.Entry(frame1, width= 40)
entry1.insert(INSERT,"输入您的姓名")
entry1.pack()
entry2= ttk.Entry(frame1, width= 40)
entry2.insert(INSERT, "输入您的电子邮件")
entry2.pack()

#创建底部框架
frame2 = LabelFrame(win, width= 150, height=100)
frame2.pack()

#创建一个按钮来启用框架
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。


相关文章