python - 如何从列表中创建复选框
问题描述
我正在尝试学习使用 Python 进行编码。我正在尝试使用 for 循环从列表中创建检查按钮。在用户选中相应的框后,我希望得到原始列表的子集,其中仅包含与选中框对应的值。我已经让检查按钮显示正常,但是我需要做什么才能将复选框的值放入列表中?我看过几个例子,但我可能没有正确理解,因为我还在学习所有这些。谢谢您的帮助。
category_data = ['Home', 'Auto', 'Groceries','Medical']
for category in category_data:
l=Checkbutton(root, text= category,onvalue = True, offvalue= False)
l.pack(anchor=W)
解决方案
首先,您需要为BooleanVar
每个分配一个Checkbox
以获取其状态。然后你需要使用 adict
来存储那些BooleanVar
使用 category 作为键的。
稍后您可以通过dict
创建所需的已检查类别列表。
from tkinter import *
root = Tk()
category_data = ['Home', 'Auto', 'Groceries', 'Medical']
cb_vars = {} # dict to store the BooleanVar
for category in category_data:
var = BooleanVar()
l = Checkbutton(root, text=category, variable=var, onvalue=True, offvalue=False)
l.pack(anchor=W)
cb_vars[category] = var # store the BooleanVar
def show_selected_categories():
selected_category = [c for c in cb_vars if cb_vars[c].get()]
print(selected_category)
Button(root, text="Check", command=show_selected_categories).pack()
root.mainloop()
推荐阅读
- sql - SQL - 如何计算过去 7 天内每天的不同 ID?
- python - 如何在python中的一列数据中显示特定行?
- spring-boot - HTTP Get 方法调用中的 413 请求实体太大问题
- c++ - CMake:如何将 .obj 3d 模型添加到 C++ Visual Studio UWP 项目
- html - 支持最小尺寸 minmax()
- php - 简单:将 PHP var 传递到 SQL 会导致 MySqli 查询失败
- r - 从数据库中构造一个矩阵,并在 r 上进行计算
- python-3.x - 如何使用超 json 负载调试 ValueError?
- python - AttributeError:“DataFrame”对象没有属性“str”
- javascript - Angular 6.访问在另一个函数中设置的“const”