Python 2.7 Python Tkinter-从多个复选框中获取值
我正在创建一个Tkinter应用程序,尝试从多个复选框中获取值。我能够创建复选框,但无法检索值。选中或未选中复选框 要求: 我需要遍历所有复选框变量来识别选中的变量Python 2.7 Python Tkinter-从多个复选框中获取值,python-2.7,variables,for-loop,checkbox,tkinter,Python 2.7,Variables,For Loop,Checkbox,Tkinter,我正在创建一个Tkinter应用程序,尝试从多个复选框中获取值。我能够创建复选框,但无法检索值。选中或未选中复选框 要求: 我需要遍历所有复选框变量来识别选中的变量 import openpyxl import sys import pandas as pd from Tkinter import * import ttk import tkFont reload(sys) sys.setdefaultencoding('utf8') top = Tk() notebook = ttk.N
import openpyxl
import sys
import pandas as pd
from Tkinter import *
import ttk
import tkFont
reload(sys)
sys.setdefaultencoding('utf8')
top = Tk()
notebook = ttk.Notebook(top)
notebook.grid(row=1, column=0, columnspan=1, sticky=W)
frame1 = ttk.Frame(top)
notebook.add(frame1, text='TAB1')
s = ttk.Style()
s.theme_use('clam')
helv36 = tkFont.Font(family='Helvetica', size=12, weight=tkFont.BOLD)
wb = openpyxl.load_workbook('File',data_only=True)
ws = wb['Sheet1']
mylist = []
mylist1 = []
for col in ws['A']:
mylist.append(col.value)
for col in ws['B']:
mylist1.append(col.value)
mylist = [str(item) for item in mylist]
mylist1 = [str(item) for item in mylist1]
i=2
for name in mylist:
Label(frame1, text="col1",
borderwidth=1,font=helv36).grid(row=1)
Label(frame1, text=name,
borderwidth=1).grid(row=i)
i +=1
i =2
for name in mylist1:
Label(frame1, text="col2",
borderwidth=1,font=helv36).grid(row=1, column=1)
Label(frame1, text=name,
borderwidth=1).grid(row=i,column=1)
val = IntVar()
val = "v" + str(i)
c_val = Checkbutton(frame1, variable=val)
c_val.grid(row=i, column=2,sticky = W)
i +=1
***def chkbox_checked():
#Need to loop to get checked checkboxes***
B200 = Button(frame1, text ="Check", command = chkbox_checked,font=helv36, bg='orange')
B200.grid(row=100)
top.mainloop()
您可以将BooleanVar与复选框关联并获取值。然后可以使用set()方法设置复选框的默认值,并使用get()获取复选框的状态。例如:
import tkinter as tk
root=tk.Tk()
c=tk.BooleanVar()
tk.Checkbutton(root,variable=c,command=lambda: print(c.get())).pack()
root.mainloop()
如果要循环多个复选框,可以执行以下操作:
import tkinter as tk
root=tk.Tk()
c1=tk.BooleanVar()
c2=tk.BooleanVar()
c3=tk.BooleanVar()
c4=tk.BooleanVar()
def get_value():
for c in (c1,c2,c3,c4):
print(c.get())
tk.Checkbutton(root,text='checkbox1',variable=c1,).pack()
tk.Checkbutton(root,text='checkbox2',variable=c2,).pack()
tk.Checkbutton(root,text='checkbox3',variable=c3,).pack()
tk.Checkbutton(root,text='checkbox4',variable=c4,).pack()
tk.Button(root,text='get value',command=get_value).pack()
root.mainloop()
你已经提出了要求,但还没有提出问题。您需要帮助解决方案的哪一部分?我需要获取选中的复选框的变量