亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 lambda 函數右擊 Tkinter 中的賦值問題

使用 lambda 函數右擊 Tkinter 中的賦值問題

胡說叔叔 2021-10-12 17:45:04
我有一個非常復雜的 Tkinter GUI,因此使用 lambda 函數避免重復分配控件的工作是值得的。這里的代碼摘錄:    def createRightMenu(self, treeName, commands: []):       for cmd in commands:          self.rightMouse[treeName].add_command(label= cmd['label'], command= lambda: self.execCommand(cmd['reqId']))       self.tree[treeName].bind("<Button-3>", lambda event:        self.rightMouse_click(event.x_root, event.y_root, treeName))    def execCommand(self, reqId):       print("execCommand", reqId)    self.tree = {}    treeName = 'a'    self.createTree(root, treeName)    self.createRightMenu(treeName , [        {'label': 'copy', 'reqId': 1},        {'label': 'retrieve', 'reqId': 2},        ])有什么作用?在我的右鍵菜單中,我得到條目“復制”和“檢索”,并調用了 execCommand。什么不起作用?execCommand 始終獲取最后一個列表元素,即 'retrieve', 2 作為參數,即使我右鍵單擊 'copy'。如果我手動添加兩個 .add_command 一切都很好。僅使用 for 循環不起作用。知道為什么嗎?
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號