【发布时间】:2017-05-25 04:56:37
【问题描述】:
我使用 tkinter(见图)在 Python 3.5 中创建了以下复选框弹出窗口,代码如下:
from tkinter import *
class Checkbar(Frame):
def __init__(self, parent=None, picks=[], side=LEFT, anchor=W):
Frame.__init__(self, parent)
self.vars = []
for pick in picks:
var = IntVar()
chk = Checkbutton(self, text=pick, variable=var)
chk.pack(side=side, anchor=anchor, expand=YES)
self.vars.append(var)
def state(self):
return map((lambda var: var.get()), self.vars)
if __name__ == '__main__':
root = Tk()
lng = Checkbar(root, ['DerVar1', 'DerVar2', 'DerVar3', 'DerVar4', 'DerVar5', 'DerVar6', 'DerVar7', 'DerVar8'])
tgl = Checkbar(root, ['DerVar9','DerVar10', 'DerVar11', 'DerVar12', 'DerVar13', 'DerVar14'])
lng.pack(side=TOP, fill=X)
tgl.pack(side=LEFT)
lng.config(relief=GROOVE, bd=2)
def allstates():
print(list(lng.state()), list(tgl.state()))
Button(root, text='Quit', command=root.quit).pack(side=RIGHT)
Button(root, text='Run', command=allstates).pack(side=RIGHT)
root.mainloop()
如您所见,我检查了“DerVar2”和“DerVar3”。单击运行后,我会以黄色突出显示以下内容。
变量 'lng' 是一个检查栏对象。我想说如果'DerVar2'被选中,然后打印'test'但不能让它工作。
这是我尝试过的代码,下面是我得到的错误:
if lng[1] == 1:
print ('test')
TypeError: 无法将 'int' 对象隐式转换为 str
【问题讨论】:
标签: python user-interface input tkinter interface