import tkinter as tk
class CheckboxApp:
def __init__(self, root):
self.root = root
self.root.title("切换复选框状态")
# 创建一个框架来放置Checkbutton
self.frame = tk.Frame(self.root)
self.frame.pack(pady=10)
# 创建三个Checkbutton
self.var_list = []
self.checkboxes = []
for i in range(3):
var = tk.BooleanVar()
checkbox = tk.Checkbutton(self.frame, text=f"选项 {i + 1}", variable=var)
checkbox.pack(anchor="w")
self.checkboxes.append(checkbox)
self.var_list.append(var)
# 创建一个名为"切换状态"的按钮
self.toggle_button = tk.Button(self.root, text="全选/全不选", command=self.toggle_checkboxes)
self.toggle_button.pack(pady=5)
# 创建一个名为"打印状态"的按钮
self.print_button = tk.Button(self.root, text="打印状态", command=self.print_checkbox_states)
self.print_button.pack(pady=5)
# 记录按钮状态
self.toggle_state = False
def toggle_checkboxes(self):
# 切换所有Checkbutton的选中状态
self.toggle_state = not self.toggle_state
for checkbox in self.checkboxes:
checkbox.select() if self.toggle_state else checkbox.deselect()
# 更新按钮文本
# self.toggle_button.config(text="全不选" if self.toggle_state else "全选")
def print_checkbox_states(self):
# 打印所有Checkbutton的状态
for i, var in enumerate(self.var_list, start=1):
state = "选中" if var.get() else "未选中"
print(f"选项 {i}: {state}")
if __name__ == "__main__":
# 创建主应用程序窗口
root = tk.Tk()
app = CheckboxApp(root)
# 运行应用程序的主事件循环
root.mainloop()
tkinter_demo_切换和打印复选框状态
于 2024-04-07 22:26:45 首次发布