# -*- coding: utf-8 -*-
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
class GeneratedUI:
"""生成的Tkinter界面"""
def __init__(self, master=None):
# 创建主窗口
self.master = master if master else tk.Tk()
self.master.title("6.复选框")
self.master.geometry("500x350+700+100")
self.master.configure(bg='white')
# 创建界面组件
self.组件布局()
# 按钮点击事件
self.master.nametowidget('按钮_选中23').config(command=self.选中23)
self.master.nametowidget('按钮_全部选中').config(command=self.全部选中)
self.master.nametowidget('按钮_全部取消').config(command=self.全部取消)
self.master.nametowidget('按钮_取选中项').config(command=self.取选中项)
def 取选中项(self):
self.master.nametowidget('文本框_日志').delete("1.0",tk.END) # 清空
# if self.check_1_var.get():
# self.master.nametowidget('文本框_日志').insert(tk.END,"当前复选1,被选中\n")
# if self.check_2_var.get():
# self.master.nametowidget('文本框_日志').insert(tk.END,"当前复选2,被选中\n")
# if self.check_3_var.get():
# self.master.nametowidget('文本框_日志').insert(tk.END,"当前复选3,被选中\n")
# if self.check_4_var.get():
# self.master.nametowidget('文本框_日志').insert(tk.END, "当前复选4,被选中\n")
kk = []
for i in range(4):
var = getattr(self, f'check_{i + 1}_var') # 关键
if var.get():
self.master.nametowidget('文本框_日志').insert(tk.END,f"当前复选{i+1},被选中\n")
kk.append(f"{i+1}")
if len(kk) ==0:
self.master.nametowidget('文本框_日志').insert(tk.END, f"当前未选中任何复选框!\n")
def 选中23(self):
print(23)
self.master.nametowidget('复选框_复选框2').select() # 选中
self.master.nametowidget('复选框_复选框3').select() # 选中
self.master.nametowidget('文本框_日志').insert(tk.END,"复选框2;复选框3; 被选中\n")
def 全部选中(self):
print("全部")
# self.master.nametowidget('复选框_复选框1').select() # 选中
# self.master.nametowidget('复选框_复选框2').select() # 选中
# self.master.nametowidget('复选框_复选框3').select() # 选中
# self.master.nametowidget('复选框_复选框4').select() # 选中
for i in range(4):
self.master.nametowidget(f'复选框_复选框{i+1}').select() # 选中
self.master.nametowidget('文本框_日志').insert(tk.END, "当前复选框,全部被选中\n")
def 全部取消(self):
print("取消")
# self.master.nametowidget('复选框_复选框1').deselect() # 取消选中
# self.master.nametowidget('复选框_复选框2').deselect() # 取消选中
# self.master.nametowidget('复选框_复选框3').deselect() # 取消选中
# self.master.nametowidget('复选框_复选框4').deselect() # 取消选中
for i in range(4):
self.master.nametowidget(f'复选框_复选框{i+1}').deselect() # 取消选中
self.master.nametowidget('文本框_日志').insert(tk.END, "当前复选框,全部取消选中\n")
def 组件布局(self):
"""创建所有界面组件"""
# 按钮: 按钮_917adcc5 -> btn_1
self.btn_1 = tk.Button(
self.master,
text="选中23",
bg="#4CAF50",
fg="white",
font=['微软雅黑', 10],
name="按钮_选中23"
)
self.btn_1.place(
x=28.0,
y=12.0,
width=100,
height=25
)
# 按钮: 按钮_87b483fd -> btn_2
self.btn_2 = tk.Button(
self.master,
text="全部选中",
bg="#4CAF50",
fg="white",
font=['微软雅黑', 10],
name="按钮_全部选中"
)
self.btn_2.place(
x=140.0,
y=12,
width=100,
height=25
)
# 按钮: 按钮_822c5737 -> btn_3
self.btn_3 = tk.Button(
self.master,
text="全部取消",
bg="#4CAF50",
fg="white",
font=['微软雅黑', 10],
name="按钮_全部取消"
)
self.btn_3.place(
x=252.0,
y=12,
width=100,
height=25
)
# 复选框: 复选框_35e55993 -> check_1
self.check_1_var = tk.BooleanVar(value=False)
self.check_1 = tk.Checkbutton(
self.master,
text="复选框1",
variable=self.check_1_var,
bg="white",
fg="black",
font=['微软雅黑', 10],
name="复选框_复选框1"
)
self.check_1.place(
x=52.0,
y=65.0,
width=80,
height=20
)
# 复选框: 复选框_2cfbc9eb -> check_2
self.check_2_var = tk.BooleanVar(value=False)
self.check_2 = tk.Checkbutton(
self.master,
text="复选框2",
variable=self.check_2_var,
bg="white",
fg="black",
font=['微软雅黑', 10],
name="复选框_复选框2"
)
self.check_2.place(
x=131.0,
y=65,
width=80,
height=21.0
)
# 复选框: 复选框_e921293c -> check_3
self.check_3_var = tk.BooleanVar(value=False)
self.check_3 = tk.Checkbutton(
self.master,
text="复选框3",
variable=self.check_3_var,
bg="white",
fg="black",
font=['微软雅黑', 10],
name="复选框_复选框3"
)
self.check_3.place(
x=219.0,
y=65.0,
width=80,
height=20
)
# 复选框: 复选框_b3161901 -> check_4
self.check_4_var = tk.BooleanVar(value=False)
self.check_4 = tk.Checkbutton(
self.master,
text="复选框4",
variable=self.check_4_var,
bg="white",
fg="black",
font=['微软雅黑', 10],
name="复选框_复选框4"
)
self.check_4.place(
x=311.0,
y=65,
width=80,
height=22.0
)
# 文本框: 文本框_cabb1568 -> text_1
self.text_1 = tk.Text(
self.master,
bg="white",
fg="black",
font=['微软雅黑', 10],
name="文本框_日志"
)
self.text_1.place(
x=17.0,
y=107.0,
width=462.0,
height=231.0
)
# 按钮: 按钮_2a70a577 -> btn_4
self.btn_4 = tk.Button(
self.master,
text="取选中项",
bg="#4CAF50",
fg="white",
font=('微软雅黑', 10),
name="按钮_取选中项"
)
self.btn_4.place(
x=363.0,
y=12.0,
width=100,
height=25
)
def main():
"""主函数"""
root = tk.Tk()
app = GeneratedUI(root)
root.mainloop()
if __name__ == "__main__":
main()