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

terminal_combobox.bind('<<ComboboxSelected>>',
                       lambda event, arg=key_dict: self.terminal_select(key_dict=arg))  # 注意,传递参数方法
1
2
3
4
def terminal_select(self, key_dict, *args):
    var = self.dict_widget[key_dict].get()
    print(key_dict)
    print(var)

  以上代码 可以实现combobox传递参数  key_dict

 

1
2
3
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))  # 地址

  

1
2
3
4
5
6
7
8
9
10
11
12
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

posted @   辛河  阅读(159)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示