Python脚本速成

6_复选框

# -*- 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()