首页 > 解决方案 > 如何通过 tkinter 在 Python 中检查多项选择(复选框)?

问题描述

我想从 5 中检查(比如说 3 个)复选框。但是通过我的代码,只能选择 1。在函数中定义的以下循环并将所有选择显示为复选框。我想知道如何检查 2 或 3 个框而不是 1 个(运行代码后)。

    for g in range(NOP):
    cb11 = Checkbutton(root, text=str(Players[g]), variable=sp11, onvalue=str(Players[g]), offvalue='', font=('helvetica', 11,'bold'), fg='silver', bg='#263D42')
    cb11.deselect()
    canvas.create_window((W/10)+dis, 75, window=cb11)
    dis += sys.getsizeof(str(Players[g]))

谢谢你们的帮助,Bests

标签: pythontkintercheckbox

解决方案


我找到了答案。sp11 只是定义每个复选框的复选标记的 1 个变量。因此,我需要为每个复选框分配一个唯一变量。为此,我应该将代码更改如下:

    sp11=[]
    for g in range(NOP):
    SV = StringVar()
    sp11.append(SV)
    cb11 = Checkbutton(root, text=str(Players[g]), variable=sp11[g], onvalue=str(Players[g]), offvalue='', font=('helvetica', 11,'bold'), fg='silver', bg='#263D42')
    cb11.deselect()
    canvas.create_window((W/10)+dis, 75, window=cb11)
    dis += sys.getsizeof(str(Players[g]))

推荐阅读