使用 tkinter python 中的列表框项目取消选择复选框并打印列表框的当前项目
deselect the checkbox using the listbox item in tkinter python and print the current item of listbox
我有两个复选框通过和失败
我正在解析 column1 的 csv 并添加两个复选框 .
X = 100
Y = 71
for item in column1[key]:
if item != '':
listbox.insert('end', item)
chk_state1 = tk.IntVar()
tk.Checkbutton(self.root, text="PASS",variable=chk_state1,font=("Arial Bold", 8),).place(x=X,y=Y)
chk_state2 = tk.IntVar()
tk.Checkbutton(self.root, text="FAIL",variable=chk_state2,font=("Arial Bold", 8),).place(x=X+80,y=Y)
Y = Y +20
- 如何知道column1 Checkbox选中了哪一行
- 一次只能选中一个复选框
提前致谢,任何意见都会有所帮助
对于项目 1,使用字典(项目名称作为键)来保存创建的 tkinter IntVar
s。然后你可以稍后通过字典获取每个项目的选中状态。
对于第 2 项,您可以使用 Radiobutton
而不是 Checkbutton
。
X = 100
Y = 71
myfont = ('Arial Bold', 8)
self.cblist = {}
for item in column1[key]:
if item != '':
listbox.insert('end', item)
chk_state = tk.IntVar(value=0)
tk.Radiobutton(self.root, text='PASS', variable=chk_state, value=1, font=myfont).place(x=X, y=Y)
tk.Radiobutton(self.root, text='FAIL', variable=chk_state, value=0, font=myfont).place(x=X+80, y=Y)
self.cblist[item] = chk_state
Y += 22
tk.Button(self.root, text='Check', command=self.check).place(x=X, y=Y+10)
...
def check(self):
result = ('Fail', 'Pass')
print(', '.join(f'{item}:{result[var.get()]}' for item, var in self.cblist.items()))
请注意,我添加了一个按钮来打印出每个项目的选定状态。
我有两个复选框通过和失败 我正在解析 column1 的 csv 并添加两个复选框 .
X = 100
Y = 71
for item in column1[key]:
if item != '':
listbox.insert('end', item)
chk_state1 = tk.IntVar()
tk.Checkbutton(self.root, text="PASS",variable=chk_state1,font=("Arial Bold", 8),).place(x=X,y=Y)
chk_state2 = tk.IntVar()
tk.Checkbutton(self.root, text="FAIL",variable=chk_state2,font=("Arial Bold", 8),).place(x=X+80,y=Y)
Y = Y +20
- 如何知道column1 Checkbox选中了哪一行
- 一次只能选中一个复选框
提前致谢,任何意见都会有所帮助
对于项目 1,使用字典(项目名称作为键)来保存创建的 tkinter IntVar
s。然后你可以稍后通过字典获取每个项目的选中状态。
对于第 2 项,您可以使用 Radiobutton
而不是 Checkbutton
。
X = 100
Y = 71
myfont = ('Arial Bold', 8)
self.cblist = {}
for item in column1[key]:
if item != '':
listbox.insert('end', item)
chk_state = tk.IntVar(value=0)
tk.Radiobutton(self.root, text='PASS', variable=chk_state, value=1, font=myfont).place(x=X, y=Y)
tk.Radiobutton(self.root, text='FAIL', variable=chk_state, value=0, font=myfont).place(x=X+80, y=Y)
self.cblist[item] = chk_state
Y += 22
tk.Button(self.root, text='Check', command=self.check).place(x=X, y=Y+10)
...
def check(self):
result = ('Fail', 'Pass')
print(', '.join(f'{item}:{result[var.get()]}' for item, var in self.cblist.items()))
请注意,我添加了一个按钮来打印出每个项目的选定状态。