[英]How to add a new entry box when clicking a button (Python, Tkinter)
[英]How to add entry box together with checkbutton in python tkinter UI
我创建了一个复选框栏。 如何禁用每个复选框的添加复选框和禁用复选框的输入框?
用于创建复选框的代码如下
#!/usr/bin/python3
import sys
from tkinter import *
from tkinter import filedialog
import tkinter.messagebox
import os
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(value=1)
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()
root.title('Test')
lng = Checkbar(root, ['ASD', 'BSD', 'CSD'])
lng.grid(row=0, columnspan=6)
在相同的for
循环中创建Entry
窗口小部件,并将它们关联到Checkbutton
。
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(value=1)
entry = Entry(self)
chk = Checkbutton(self, text=pick, variable=var, command=lambda v=var, e=entry: self.show_entry(v,e))
chk.pack(side=side, anchor=anchor, expand=YES)
entry.pack(side=side, anchor=anchor, expand=YES)
self.vars.append(var)
def show_entry(self, var, widget):
if var.get() == 0:
widget.configure(state='disabled')
else:
widget.configure(state='normal')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.