python tkinter 动态批量建立Widget时,combobox 或 entry传递参数问题

发布时间 2023-06-09 13:16:25作者: 辛河
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