【发布时间】:2019-08-20 11:45:05
【问题描述】:
我是 tkinter 的新手,正在学习基础知识。
以下代码打开一个 GUI 并提供两组复选框。
我希望隐藏第二组复选框。
只有当我从第一组复选框中单击 Python 时,才能看到 Python 2 和 Python 3。
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, ['Python', 'Ruby', 'Perl', 'C++'])
tgl = Checkbar(root, ['Python 2','Python 3'])
#tgl = Checkbar(root, ['Ruby 2','Ruby 3'])
#tgl = Checkbar(root, ['Perl 2','Perl 3'])
#tgl = Checkbar(root, ['C++ 2','C++ 3'])
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='Peek', command=allstates).pack(side=RIGHT)
root.mainloop()
【问题讨论】: