Python脚本速成

7_列表框

# -*- 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("列表框的使用")
        self.master.geometry("500x350+700+100")
        self.master.configure(bg='white')

        # 创建界面组件
        self.create_widgets()

        # 1、添加项
        self.master.nametowidget('列表框_账号').insert(tk.END, "账号6")
        # 2、设置多选模式
        self.master.nametowidget('列表框_账号').config(selectmode="multiple")
        # 3、按钮点击事件 取选中的项
        self.master.nametowidget('按钮_取选中的项').config(command=self.取选中的项)
        self.master.nametowidget('按钮_一键全选').config(command=self.一键全选)
        self.master.nametowidget('按钮_一键取消').config(command=self.一键取消)


    def 一键全选(self):
        self.master.nametowidget('列表框_账号').selection_set(0,tk.END) # 全部选中


    def 一键取消(self):
        self.master.nametowidget('列表框_账号').selection_clear(0, tk.END)  # 清空 取消所有选中的项



    def 取选中的项(self):
        # all_items = self.master.nametowidget('列表框_账号').get(0, tk.END) # 获取所有的项的名称

        选中的索引 = self.master.nametowidget('列表框_账号').curselection() #  索引元组
        if 选中的索引:
            for 索引 in 选中的索引:
                选中项文本 = self.master.nametowidget('列表框_账号').get(索引)
                # print(选中项文本)
                self.登录账号(选中项文本)


    def 登录账号(self,账号名称):
        print(f'{账号名称},登录成功!')





    def create_widgets(self):
        """创建所有界面组件"""

        # 列表框: 列表框_105ef208 -> listbox_1
        self.listbox_1 = tk.Listbox(
            self.master,
            bg="white",
            fg="black",
            font=('微软雅黑', 10),
            name="列表框_账号"
        )
        self.listbox_1.place(
            x=18.0,
            y=62.0,
            width=465.0,
            height=276.0
        )
        self.listbox_1.insert(tk.END, "账号1")
        self.listbox_1.insert(tk.END, "账号2")
        self.listbox_1.insert(tk.END, "账号3")
        self.listbox_1.insert(tk.END, "账号4")
        self.listbox_1.insert(tk.END, "账号5")

        # 按钮: 按钮_7e9d98c1 -> btn_1
        self.btn_1 = tk.Button(
            self.master,
            text="取选中的项",
            bg="#4CAF50",
            fg="white",
            font=('微软雅黑', 10),
            name="按钮_取选中的项"
        )
        self.btn_1.place(
            x=54.0,
            y=17.0,
            width=100,
            height=25
        )

        # 按钮: 按钮_4a4926b2 -> btn_2
        self.btn_2 = tk.Button(
            self.master,
            text="一键全选",
            bg="#4CAF50",
            fg="white",
            font=('微软雅黑', 10),
            name="按钮_一键全选"
        )
        self.btn_2.place(
            x=172.0,
            y=17,
            width=100,
            height=25
        )

        # 按钮: 按钮_56a4dab7 -> btn_3
        self.btn_3 = tk.Button(
            self.master,
            text="一键取消",
            bg="#4CAF50",
            fg="white",
            font=('微软雅黑', 10),
            name="按钮_一键取消"
        )
        self.btn_3.place(
            x=287.0,
            y=17,
            width=100,
            height=25
        )


def main():
    """主函数"""
    root = tk.Tk()
    app = GeneratedUI(root)
    root.mainloop()

if __name__ == "__main__":
    main()