python - 如何通过 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
解决方案
我找到了答案。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]))
推荐阅读
- winapi - How to draw TrueType fonts into an array of pixels in WinAPI?
- c# - Derive/Override the DataMemberAttribute
- sql - 在 JOOQ DSL 中使用带有连接别名的 PosgreSQL array_agg
- c# - 从 Web API (2.1) 控制器运行 STA(单线程单元)线程
- swift - Swift 4:使用 Firestore 对数据进行排序
- vba - 使用列表框 Microsoft Access 多选
- apache-kafka - 增加 Kafka 消费者在单次轮询中读取的消息数量
- objective-c - 在 macOS 应用程序中实现复制:剪切和粘贴:WebView 不起作用
- python - Pandas - TimeSeries 到每月系列图
- c++ - 将常量整数转换为值* LLVM