Python tkinter复选框双重检查/取消选中(Python tkinter Checkboxes double check/uncheck)

我在python中遇到了tkinter复选框的问题。

我在网格布局中使用了两个checkButtons。

class GUI (Tk):

...

def __init__(self, parent):

Tk.__init__(self, parent)

self.parent = parent

self.varA = 0

self.varB = 0

Checkbutton(self, text="Do A", variable=self.varA, command=self.onCheckButtonAPressed).grid(column=1, row=7, sticky='WESN')

Checkbutton(self, text="Do B", variable=self.varB, command=self.onCheckButtonBPressed).grid(column=2, row=4, sticky='WESN')

...

当我点击其中一个时,变量被正确更改,但只需点击其中一个,两个都被选中/取消选中,我不知道为什么...... :(

I have a problem with tkinter checkboxes in python.

I use two checkButtons in a grid layout.

class GUI (Tk):

...

def __init__(self, parent):

Tk.__init__(self, parent)

self.parent = parent

self.varA = 0

self.varB = 0

Checkbutton(self, text="Do A", variable=self.varA, command=self.onCheckButtonAPressed).grid(column=1, row=7, sticky='WESN')

Checkbutton(self, text="Do B", variable=self.varB, command=self.onCheckButtonBPressed).grid(column=2, row=4, sticky='WESN')

...

When I click on one of them, the variable is changed correctly, but with one click on one of them, both are checked/unchecked and I don't know why.. :(

原文:https://stackoverflow.com/questions/31982960

更新时间:2020-01-29 20:08

最满意答案

为tkinter的特殊var对象重新保留variable选项。 此外,您应该拆分对象的初始化并将其添加到Layoutmanager( .grid() ),以便稍后引用您的对象。

class GUI (Tk):

def __init__(self, **options):

Tk.__init__(self, **options)

self.varA = IntVar()

self.varA.set(0)

self.varB = IntVar()

self.varB.set(0)

checkbox_a = Checkbutton(self, text="Do A", variable=self.varA, command=self.onCheckButtonAPressed)

checkbox_a.grid(column=1, row=7, sticky='WESN')

checkbox_b = Checkbutton(self, text="Do B", variable=self.varB, command=self.onCheckButtonBPressed)

checkbox_b.grid(column=2, row=4, sticky='WESN')

def onCheckButtonBPressed(self):

print self.varB.get()

def onCheckButtonAPressed(self):

print self.varA.get()

The variable option is reserverd for special var-objects of tkinter. Also you should split inititalization of your Object and adding it to your Layoutmanager (.grid()) so you have a reference to your object later.

class GUI (Tk):

def __init__(self, **options):

Tk.__init__(self, **options)

self.varA = IntVar()

self.varA.set(0)

self.varB = IntVar()

self.varB.set(0)

checkbox_a = Checkbutton(self, text="Do A", variable=self.varA, command=self.onCheckButtonAPressed)

checkbox_a.grid(column=1, row=7, sticky='WESN')

checkbox_b = Checkbutton(self, text="Do B", variable=self.varB, command=self.onCheckButtonBPressed)

checkbox_b.grid(column=2, row=4, sticky='WESN')

def onCheckButtonBPressed(self):

print self.varB.get()

def onCheckButtonAPressed(self):

print self.varA.get()

2015-08-13

相关问答

jQuery的: 您可以使用jQuery的prop()代替: $('#checkbox1').prop('checked', true); 取消选中你只需使用: $('#checkbox1').prop('checked', false); jsFiddle在这里。 纯Javascript: 在纯Javascript中,您可以使用.checked属性: document.getElementById('checkbox1').checked = true;

取消选中你只需使用: document

...

尝试这个: $(document).ready(function(){

$('.check:button').toggle(function(){

$('input:checkbox').attr('checked','checked');

$(this).val('uncheck all');

},function(){

$('input:checkbox').removeAttr('checked');

$(thi

...

问题是因为根据您的要求,您应该只选择一些QCheckBox ,但是您没有进行验证,能够正确处理它,创建一个插槽并知道信号被发出的对象, sender()方法: import sys

from PyQt5.QtWidgets import *

from PyQt5.QtCore import *

class Test(QWidget):

def __init__(self):

super().__init__()

self.initUI()

def

...

把事情简单化。 尝试这个 $("#checkall").click(function() {

$(".kselItems").attr('checked', this.checked);

});

演示: http : //jsfiddle.net/naveen/azkPR/ Keep it simple. Try this $("#checkall").click(function() {

$(".kselItems").attr('checked', this.checked)

...

根据这里的例子http://www.python-course.eu/tkinter_checkboxes.php from tkinter import *

master = Tk()

var1 = IntVar()

Checkbutton(master, text="male", variable=var1).grid(row=0, sticky=W)

var2 = IntVar()

Checkbutton(master, text="female", variable=var2).grid(

...

您的CheckVar是一个局部变量。 它正在收集垃圾。 将其保存为对象属性。 另外,您可以创建变量并将其初始化为一步: self.CheckVar = IntVar(value=1)

self.checkbutton = Checkbutton(..., variable = self.CheckVar)

Your CheckVar is a local variable. It's getting garbage collected. Save it as an object attribut

...

为tkinter的特殊var对象重新保留variable选项。 此外,您应该拆分对象的初始化并将其添加到Layoutmanager( .grid() ),以便稍后引用您的对象。 class GUI (Tk):

def __init__(self, **options):

Tk.__init__(self, **options)

self.varA = IntVar()

self.varA.set(0)

self.varB =

...

你能试试$ _GET吗? <?php

$all_checked = false;

if (!empty($_GET['all_checked']))

$all_checked = true;

for ($i = 0; $i < 10; $i++)

if ($all_checked)

echo '';

else

echo '

$(".checkbox").prop("checked", this.checked);

});

As of jQuery 1.6 for changing properties of elements prop method should be used instead of attr. $(

...

如果代码适用于第一行,根据你这样做(“检查仅适用于第一个任务(1)(阵容#1)。”),这很可能解决你所面临的问题: 只需用以下代码替换代码的给定部分: $(document).on('change','.cad, .design, .shop, .cnc', function() {

var elemsToCheck = $(this).data('check').split(' ');

var checked = $(this).prop('checked');

$.ea

...

python中复选框取消修改_Python tkinter复选框双重检查/取消选中(Python tkinter Checkboxes double check/uncheck)...相关推荐

  1. python中复选框取消修改_python – 如何在PySide / PyQt中设置“只读复选框”

    我迟到了 – 看起来你有一个有效的解决方案.为了将来参考,您可以采用的另一种方式是使用鼠标事件 – 这可以保持所有信号的工作方式: from PyQt4 import QtGui, QtCore cl ...

  2. php表单复选传值,jQuery+SpringMVC中的复选框选择与传值实例_jquery

    下面我就为大家分享一篇jQuery+SpringMVC中的复选框选择与传值实例,具有很好的参考价值,希望对大家有所帮助. 一.checkbox选择 在jQuery中,选中checkbox通用的两种方式 ...

  3. 【jQuery】复选框的全选、反选,推断哪些复选框被选中

    本文与<[JavaScript]复选框的全选.反选.推断哪些复选框被选中>(点击打开链接)为姊妹篇,把里面内容再与jQuery框架中实现一次,相同做到例如以下的效果: 布局还是相同的布局, ...

  4. html复选框不可修改,html设置复选框的只读效果

    在Web开发中,有时候需要显示一些复选框(checkbox),表明这个地方是可以进行勾选操作的,但是有时候是只想告知用户"这个地方是可以进行勾选操作的"而不想让用户在此处勾选(比如 ...

  5. python有趣的例子和故事_Python几个有趣和特别的小故事|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 前言 当一门编程语言是开源的时候,往往会有产生一些搞笑和有趣的东西.通常,这意味着社区的贡献者会为该语言添 ...

  6. android勾选控件_Android中CheckBox复选框控件使用方法详解

    CheckBox复选框控件使用方法,具体内容如下 一.简介 1. 2.类结构图 二.CheckBox复选框控件使用方法 这里是使用java代码在LinearLayout里面添加控件 1.新建Linea ...

  7. flutter 全选_Flutter笔记19:CheckBoxListTitle复选框实现全选全不选

    CheckBoxListTitle复选框是比CheckBox更加强大的复选框,当然,CheckBoxListTitle实现的效果,用CheckBox也能实现,只不过布局更加麻烦点.这里是用CheckB ...

  8. python字符串中某个字符修改_Python中修改字符串的四种方法

    在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符. 因此改变一个字符串的元素需要新建一个新的字符串. 常见的修改方法有以下4种. 方法1:将字符串转换成列表后修改值,然后用joi ...

  9. python抖音表白程序代码_python教程之抖音同款表白神器——Python让你的七夕更完美!-Go语言中文社区...

    又到了一年一度的七夕!大家都准备送什么给自己心仪的对象呢?今天给大家带来python教程之抖音同款表白神器--Python让你的七夕更完美! 先上效果: python表白小程序 代码: from tk ...

  10. python怎么封装方法然后调用_Python实现封装打包自己写的代码,被python import

    1.新建一个文件夹example,里面放入要打包的.py文件,以及必需的_init_.py. 代码如下: # -*- coding: utf-8 -*- """ Crea ...

最新文章

  1. java jms消息删除_activemq的topic消息一直都会存在数据库中,为什么不会删除
  2. 在5分钟内搭建企业内部私有npm仓库
  3. 工程建筑行业SAP整体解决方案
  4. 平安、招行、工行、微众、网商们怎么都在布局卫星物联网?
  5. SpringBoot+ElementUI实现多选设置一月中指定几天的属性,SpringBoot中通过反射实现
  6. 【机器学习】Python 快速入门笔记
  7. 2018年计算机学校迎新标语,2018学校迎新标语大全.doc
  8. 软件工程 团队博客作业 如何评价个人在团队中的绩效
  9. windows安装HTK3.4.1
  10. Quartz + Oracle 分布式Job实现
  11. 将 Typora 小工具添加到右键菜单中
  12. 基于GDAL实现的PCA变换(主成分分析)
  13. 解决asp数据库对象只读的办法
  14. egret性能优化总结
  15. 软考中级考试经验分享-系统集成项目管理工程师
  16. 原生android ui设计,在拟物和扁平之间寻找平衡 原生安卓UI设计进化史
  17. Css中路径data:image/png;base64的用法详解与操作
  18. 欧拉角中各种角度的名称
  19. IPv6, DAD 工作原理详解
  20. Winyao 8125-M2-C NGFF KEY A+E RTL8125B 工业2.5G千兆网卡

热门文章

  1. 新的开始——参加培训
  2. png转icon java,PNG转ICO - steambap的个人空间 - OSCHINA - 中文开源技术交流社区
  3. 家用无线漫游组网设置-亲测可用
  4. win10锁屏账户和计算机名,如何玩转Win10锁屏和主题
  5. java分词支持拼音_支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
  6. ps怎么对比原图快捷键_ps快捷键对比
  7. 网站服务器 80端口吗,你的服务器打开IIS80端口了吗?
  8. 计算机专业英语求职信范文及翻译,英文求职信范文带翻译150字-.doc
  9. Java学习-设计模式-单例模式
  10. android闹钟设置功能吗,Android编程闹钟设置方法详解