python tkinter 勾选框_Python Tkinter网格复选框
我想知道是否有一种简单的方法来使用Tkinter创建一个复选框网格.我正在尝试制作10行和10列的网格(所以100个复选框),这样每行只能选择两个复选框.
编辑:我正在使用spthon的python 2.7
到目前为止我所拥有的:
from Tkinter import*
master = Tk()
master.title("Select Groups")
rows=10
columns=10
for x in range(rows):
for y in range(columns):
Label(master, text= "Group %s"%(y+1)).grid(row=0,column=y+1)
Label(master, text= "Test %s"%(x+1)).grid(row=x+1,column=0)
Checkbutton(master).grid(row=x+1, column=y+1)
mainloop()
一旦选中了两个复选框,我正在尝试使用state =’Disabled’来使行变灰.
解决方法:
以下是使用您提供的10×10网格的示例.它应该为您提供如何实现它的基本概念.
只需确保保留对每个Checkbutton(示例中的框)以及每个IntVar(示例中的boxVars)的引用.
原因如下:
-Chckbuttons需要调用config(state = DISABLED / NORMAL).
-IntVars需要确定每个Checkbutton的值.
除了那些关键元素,它基本上只是一些2D数组处理.
这是我的示例代码(现在基于您提供的代码).
from Tkinter import *
master = Tk()
master.title("Select Groups")
rows=10
columns=10
boxes = []
boxVars = []
# Create all IntVars, set to 0
for i in range(rows):
boxVars.append([])
for j in range(columns):
boxVars[i].append(IntVar())
boxVars[i][j].set(0)
def checkRow(i):
global boxVars, boxes
row = boxVars[i]
deselected = []
# Loop through row that was changed, check which items were not selected
# (so that we know which indeces to disable in the event that 2 have been selected)
for j in range(len(row)):
if row[j].get() == 0:
deselected.append(j)
# Check if enough buttons have been selected. If so, disable the deselected indeces,
# Otherwise set all of them to active (in case we have previously disabled them).
if len(deselected) == (len(row) - 2):
for j in deselected:
boxes[i][j].config(state = DISABLED)
else:
for item in boxes[i]:
item.config(state = NORMAL)
def getSelected():
selected = {}
for i in range(len(boxVars)):
temp = []
for j in range(len(boxVars[i])):
if boxVars[i][j].get() == 1:
temp.append(j + 1)
if len(temp) > 1:
selected[i + 1] = temp
print selected
for x in range(rows):
boxes.append([])
for y in range(columns):
Label(master, text= "Group %s"%(y+1)).grid(row=0,column=y+1)
Label(master, text= "Test %s"%(x+1)).grid(row=x+1,column=0)
boxes[x].append(Checkbutton(master, variable = boxVars[x][y], command = lambda x = x: checkRow(x)))
boxes[x][y].grid(row=x+1, column=y+1)
b = Button(master, text = "Get", command = getSelected, width = 10)
b.grid(row = 12, column = 11)
mainloop()
标签:python,checkbox,grid,tkinter
来源: https://codeday.me/bug/20190609/1203992.html
python tkinter 勾选框_Python Tkinter网格复选框相关推荐
- PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
先看效果图,选中了几行,然后将选中的内容展示出来. 我设置两个有序序列,分别存储对应的复选框和行内容. 我的行内容是用的 label 标签. # 存储右边label组件的有序列表def get_L_b ...
- 复选框全选效果,根据单个复选框的选择情况确定全选复选框是否被选
复选框全选与全不选效果 逻辑:复选框的checked属性与复选框全选效果对应起来,全选复选框checked:true 时,全部复选框checked:true: 全选框checked:false 时,全 ...
- java得到选择的复选框_java怎么获取复选框的值_java学习记录20200817
2020.08.17-2020.08.23学习计划: (1)完成前端知识积累HTML+CSS+JavaScript(周一至周四) (2)完成ssm两门课复习(周一至周五) (3)完成所有已学代码的熟悉 ...
- html下拉复选框联动,HTML : CheckBox 复选框成组联动(JavaScript)
在页面中,经常需要控制一组 CheckBox 的选中状态,常用的操作有: 1.通过一个或者多个复选框来控制一组 CheckBox 的选中状态. 2.根据一组 CheckBox 的选中状态来决定某些控件 ...
- 5、Web 窗体的基本控件——复选框控件和复选组控件(CheckBox 和 CheckBoxList)
5.Web 窗体的基本控件--复选框控件和复选组控件(CheckBox 和 CheckBoxList) 复选框控件和复选组控件(CheckBox 和 CheckBoxList) 前端 <%@ P ...
- python输出文本框_python TKinter获取文本框内容的方法
python TKinter获取文本框内容的方法 如下所示: #coding:utf-8 import urllib,urllib2 import Tkinter #导入TKinter模块 ytm=T ...
- python tkinter pack 同一行_用python tkinter中的一行连接2个复选按钮
我有一个程序在画布中放置复选按钮,当选项(另一个复选按钮)被选中时.我有另一个选项(另一个复选按钮)来画线.为了画线,首先我应该选择checkbutton"draw a line" ...
- python炫酷动画源代码_Python tkinter实现的图片移动碰撞动画效果【附源码下载】...
本文实例讲述了Python tkinter实现的图片移动碰撞动画效果.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: #!/usr/bin/python # -*- coding ...
- python中stringvar的用法_Python tkinter.StringVar方法代码示例
本文整理汇总了Python中tkinter.StringVar方法的典型用法代码示例.如果您正苦于以下问题:Python tkinter.StringVar方法的具体用法?Python tkinter ...
最新文章
- AD管理之三,企业根CA的安装
- python开发的软件有哪些-有哪些值得推荐的 Python 开发工具?
- 零基础Python学习路线图,小白的进阶之路!
- 八大排序算法图文讲解
- 听一听蚂蚁金服机器学习算法中台周俊谈共享智能技术实践:如何降低数据共享的难度?
- 邮宝打印面单尺寸调整_如何打印身份证的实际尺寸?怎样用照片打印身份证复印件...
- 工业级光纤收发器产品性能特点介绍
- 浅谈飞鸽传书实现原理
- 认识计算机网络教案小学,初识计算机网络教案
- PostgreSQL 10.1 手册_部分 III. 服务器管理_第 26 章 高可用、负载均衡和复制_26.4. 日志传送的替代方法...
- c语言求英文字母编号,菜鸟求助,写一个随机输出26个英文字母的程序
- TeaVM当前版本(0.7.0)还不支持传递字串参数
- 计算机释放内存的命令,如何设置电脑Win7自动释放内存空间?
- 三星S7edge刷极光ROM的总结
- 我java启蒙老师 郝斌老师
- 网络编辑员国家职业标准
- axure rp8 添加动态面板_AxureRP教程–动态面板高级应用
- (转载)QTableWidget详细用法总结(非常详细,基本所有常用函数都涉及了)
- 七年级计算机考试知识点,七年级语文重点笔记 必考知识
- 微生信在线绘制KEGG Pathway通路分类汇总图