python tkinter 动态批量建立Widget时,combobox 或 entry传递参数问题
terminal_combobox.bind('<<ComboboxSelected>>', lambda event, arg=key_dict: self.terminal_select(key_dict=arg)) # 注意,传递参数方法
def terminal_select(self, key_dict, *args): var = self.dict_widget[key_dict].get() print(key_dict) print(var)
以上代码 可以实现combobox传递参数 key_dict
reg_value_entry = ttk.Entry(small_frame, textvariable=reg_value_var, width=9, validate='focusout',
validatecommand=lambda args=key_dict: self.terminal_validate_text(args),
invalidcommand=lambda args=key_dict: self.input_warn(args)) # 地址
def terminal_validate_text(self, key_dict): # 文本检测 """ 根据Entry单行输入,查找数据库记录 """ entry_current = self.dict_var[key_dict] print((key_dict, entry_current.get())) var = self.dict_widget[key_dict].get() if var.isdigit(): print("数字{}".format(var)) return True # 必须有 else: print(var) self.dict_widget[key_dict].delete(0, tk.END) # 删除原有内容文本 return False # 必须有
以上代码 可以实现Entry传递参数 key_dict