You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Tkinter实现带复选功能下拉列表的技术求助

实现带复选功能的邮件发件人下拉选框

别纠结那个装不上的ChecklistCombobox了,直接用tkinter自己搞个稳定的,代码示例如下:

import tkinter as tk
from tkinter import ttk

class CheckableDropdown(tk.Toplevel):
    def __init__(self, parent, options):
        super().__init__(parent)
        self.transient(parent)
        self.options = options
        self.selected = []
        
        # 逐个添加发件人复选框
        self.check_vars = []
        for opt in options:
            var = tk.BooleanVar()
            self.check_vars.append(var)
            cb = ttk.Checkbutton(self, text=opt, variable=var, command=self.update_selected)
            cb.pack(anchor='w', padx=5, pady=2)
        
        # 确定选择按钮
        confirm_btn = ttk.Button(self, text="确定", command=self.destroy)
        confirm_btn.pack(pady=5)
    
    def update_selected(self):
        self.selected = [self.options[i] for i, var in enumerate(self.check_vars) if var.get()]

def handle_data_extraction():
    # 获取选中的发件人,替换成你的数据提取逻辑
    selected_senders = dropdown.selected if hasattr(dropdown, 'selected') else []
    print("待提取数据的发件人:", selected_senders)
    # 这里调用你的数据提取函数,比如 extract_email_data(selected_senders)

if __name__ == "__main__":
    root = tk.Tk()
    root.title("邮件数据提取工具")
    
    # 替换成你的实际发件人列表
    sender_list = ["张三 <zhangsan@example.com>", "李四 <lisi@example.com>", "王五 <wangwu@example.com>", "赵六 <zhaoliu@example.com>"]
    
    # 弹出复选下拉框的触发按钮
    def show_checklist():
        global dropdown
        dropdown = CheckableDropdown(root, sender_list)
        dropdown.grab_set()
    
    select_btn = ttk.Button(root, text="选择发件人", command=show_checklist)
    select_btn.pack(pady=10)
    
    # 数据提取/下载按钮
    extract_btn = ttk.Button(root, text="提取选中发件人数据", command=handle_data_extraction)
    extract_btn.pack(pady=5)
    
    root.mainloop()

简单说明:

  • 用tk原生的Toplevel做弹窗承载复选框列表,不需要额外安装第三方包
  • 点击「选择发件人」弹出复选列表,选完点「确定」完成选择
  • 点击「提取选中发件人数据」时,自动获取选中的发件人列表,直接对接你的数据提取函数即可

内容的提问来源于stack exchange,提问作者Erik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:01:44