如何创建GUI以从不同的两个复选框中添加两个数字?

用户名
from tkinter import *
from ProjectHeader import *

def sel1():
    return 1

def sel2():
    return 2

def sel3():
    return 3

def sel4():
    return 4

def sel():

      selection = "THe answer is: " + str(sel2() + sel3())
      label.config(text = selection)

top = Tk()
var = IntVar()

CheckVar1 = sel1()
CheckVar2 = sel2()
CheckVar3 = sel3()
CheckVar4 = sel4()

C1 = Checkbutton(top, text = "Option1", variable = CheckVar1)
C2 = Checkbutton(top, text = "Option2", variable = CheckVar2)
C3 = Checkbutton(top, text = "Option3", variable = CheckVar3)
C4 = Checkbutton(top, text = "Option4", variable = CheckVar4)

B = Button(top, text ="ADD", command=sel)

B.pack()

C1.pack()
C2.pack()
C3.pack()
C4.pack()

label = Label(top)
label.pack()


top.mainloop()

如标题所述,如何创建一个GUI以从两个不同的复选框中添加两个数字?

例如,当我同时检查选项2和选项3时,程序将获取sel2()和sel3()中的值并进行加法运算

我尝试了几种方法,但是当我选中该复选框时,我不明白如何使该复选框为true /被选中,即使未选中该复选框,代码也会显示答案

德里克

如果我正确理解,这是您程序的简化版本,应该可以回答您的问题:

from Tkinter import *

gui = Tk()

#create variables to store check state
checked1 = IntVar()
checked2 = IntVar()
#create values for the two boxes
cb1 = 5
cb2 = 10

#create a callback for our button
def callback():
    print(checked1.get()*cb1+checked2.get()*cb2)

c1 = Checkbutton(gui, text='b1', variable=checked1)
c2 = Checkbutton(gui, text='b2', variable=checked2)
b1 = Button(gui, text="ADD", command=callback)

c1.pack()
c2.pack()
b1.pack()

gui.mainloop()

您在程序中达到了一个复杂的水平,将gui重组为一个类将是有益的。如果需要有关如何执行此操作的示例,请阅读Tkinter文档这是GUI作为自定义类的示例:

from Tkinter import *

class Gui(object):
    def __init__(self, parent):
        self.top = parent

        self.checked1 = IntVar()
        self.checked2 = IntVar()

        self.c1_value = 1
        self.c2_value = 2

        self.c1 = Checkbutton(self.top, text='b1', variable=self.checked1)
        self.c2 = Checkbutton(self.top, text='b2', variable=self.checked2)
        self.b1 = Button(self.top, text="ADD", command=self.callback)
        self.l1 = Label(self.top)

        self.c1.pack()
        self.c2.pack()
        self.b1.pack()
        self.l1.pack()

    def callback(self):
        value = self.c1_value*self.checked1.get() + self.c2_value*self.checked2.get()
        self.l1.config(text=str(value))

root = Tk()

my_window = Gui(root)

root.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

webkit-transform 在两个不同的复选框中添加时不起作用

如何使用两个插入查询从复选框中循环两个值

如何从两个不同的复选框值更改跨度文本

在两个不同的列中对齐复选框和文本

如何使复选框复选框在两个复选框组之间切换?

如何从PHP中两个选中的复选框中获取答案

如何在Android中获取两个复选框的值

如何使用jQuery从两个表中选中的复选框值中获取数据?

Angular.js如何使两个输入在单击复选框中内嵌

如何用来自两个不同数组的数据表示一个复选框?

如何将两个已命名的复选框添加到一个单元格

如何验证两个复选框并确保至少选中一个复选框?

选中复选框时如何合并两个数组

如何使用两个数组将复选框的值设置为true?

Angular 2如何循环两个数组并比较它如果比较相同的复选框

如何在两个数组中使选中的复选框

将两个数组绑定到一组复选框中-angularjs

当两个数组中的 idItem 相同时,选中复选框

在PHP中合并两个数组和选中的复选框

仅选中两个复选框

复选框的 if 语句中的两个 #id

限制选择两个以上的复选框

If/Else 选中两个复选框 - Javascript

根据两个复选框值过滤

使用复选框在两个不同的标签内容之间切换

jQuery:同时在两个不同的表中选中/取消选中复选框

jQuery在两个复选框之间选择一个复选框

如何防止复选框循环和单选按钮循环创建两个单独的价格总计

在javascript中添加两个数字