繁体   English   中英

如何在python tkinter UI中添加输入框和复选框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM