

Tkinter の `tree.view` でフォーカスを複数行に対して行いたい。

例えばサンプルコードのように10行の `tree.view` リストから "3"、"4" だけフォーカスしたいがなぜか "4"
だけしかフォーカスされません。

複数行選択状態にする方法をご存知の方いらっしゃったら、ご教示いただけると助かります。  
よろしくお願いいたします。

[![実行画面](https://i.stack.imgur.com/Fh2iL.png)](https://i.stack.imgur.com/Fh2iL.png)

[code]

    import tkinter as tk
    import tkinter.ttk as ttk
    
    num_frame = tk.Tk() # ルートフレーム作成
    num_frame.title("") # タイトル設定
    num_frame.geometry("180x306") # 画面サイズ設定
    num_frame1 = tk.LabelFrame(num_frame,font=("",12),bd=2,padx=5,pady=5,relief="ridge",labelanchor='nw',text="",width=150,height=240,bg="#00599D")
    num_frame1.pack(fill="both")
    style = ttk.Style()
    style.configure("Treeview",font=("",12)) # TreeViewのフォントサイズの変更
    style.configure("Treeview.Heading",font=("",14,"bold")) # ヘッダのフォントサイズの変更と太字の設定
    tree = ttk.Treeview(num_frame1,height=100)
    tree["columns"] = (1)
    tree["show"] = "headings" # 表スタイルの設定
    tree.column(1,width=100)
    tree.pack()
    num_lst = ("0","1","2","3","4","5","6","7","8","9")
    i = 0 # 初期化
    for line in num_lst:
        iid = tree.insert("","end",tags=i,values=(line))
        # tagが奇数か偶数か判定して背景色を変える
        if line == "3" or line == "4" :
            tree.focus(iid) # データのフォーカス(プログラム上で内部的に選択した状態)
            tree.selection_set(iid) # データの選択(見た目上で選択された状態)
    
[/code]


CC BY-SA 4.0
2020-06-09T08:44:33.127
67454
2022-08-23T08:03:05.297
2022-03-09T16:10:48.460
3060
40212
question
python tkinter tk
Tkinter の tree.view でフォーカスを複数行に対して行いたい


こちらの記事を参考に、複数選択する場合は`selection_set()`ではなく`selection_add()`か`selection_toggle()`にすれば良いでしょう。

[Tk Treeview Focus(). How do I Get Multiple Selected
Lines?](https://stackoverflow.com/q/48867800/9014308)

> Use ttk.treeview.selection().  
>  It gives the selected items. See also other Treeview methods with selection
> prefix such as,  
>  選択したアイテムが表示されます。 以下のような選択接頭辞を持つ他のTreeviewメソッドも参照してください。
[code]

>     selection_add
>     selection_remove
>     selection_toggle
>  
[/code]


CC BY-SA 4.0
2020-06-09T09:18:59.387
67456
2020-06-09T09:18:59.387
2020-06-17T08:14:45.997
-1
26370
67454
answer