アメグラ2号のブログ

1980年代後半の古き良きビデオゲームのほか、オッサンの個人的備忘録

python Tkinter/bind,TreeviewSelectで選択した時の関数に引数

備忘録:何回かハマったので書き残しておこう。

Tkinter treeviewで、選択した時の関数

この関数に引数を持たせたい場合は、以下のようにlambda event~~~と。


treeviewが複数あって、TreeviewSelectを各ツリーでやりたい場合↓

    def create_widgets(self):

       # 省略~~~~~

        # --------------------------------------------------
        #ツリー内をマウスで選択した時
        # --------------------------------------------------
        self.tree1.bind("<<TreeviewSelect>>", lambda event:self.OnTreeSelect(event,self.tree1))
        self.tree2.bind("<<TreeviewSelect>>", lambda event:self.OnTreeSelect(event,self.tree2))
        self.tree3.bind("<<TreeviewSelect>>", lambda event:self.OnTreeSelect(event,self.tree3))
        self.tree4.bind("<<TreeviewSelect>>", lambda event:self.OnTreeSelect(event,self.tree4))
        self.tree5.bind("<<TreeviewSelect>>", lambda event:self.OnTreeSelect(event,self.tree5))

    def OnTreeSelect(self,event,tree):     
        """
        ///ツリービュー内の情報を選択したときの処理///
        """
        # 選択中のiid
        selected_id = tree.selection()

        if tree.focus()=="":
            pass
        else:
            selected_list = tree.item(selected_id)['values']

        print(selected_list)