前提
python tkinter で treeview を使ったアプリを作っています。
知りたいこと
treeviewの x座標から identify_column で取得したコラムと、 bbox から取得したX座標が一致しません。
一番左のコラムは一致しますが、二番以降は 「5」 ずつズレが生じます。
理由がわかりません。
該当のソースコード
import tkinter as tk from tkinter import ttk root= tk.Tk() root.title('Treeview demo') root.geometry('600x400') columns= ('#1', '#2', '#3' , '#4') tree= ttk.Treeview(root, columns=columns,show="headings") values= [] for n in range(1, 10): values.append((f'a_ {n}', f'b_ {n}', f'c_ {n}', f'd_ {n}')) for n,v in enumerate(values): tree.insert('', "end", values=v) tree.grid(row=0, column=0, sticky='nsew') tree.update() tree.column('#1', width= 100) tree.column('#2', width= 100) tree.column('#3', width= 100) tree.column('#4', width= 100) def call1(e): iid = tree.identify_row(e.y) print(f"start region={tree.identify_region(e.x,e.y)}") n=1 for i in range(len(tree["columns"])): clm="#"+str(i+1) b=tree.bbox(iid,clm) if b == "": continue bs=b[0] sta=n while True: c=tree.identify_column(n) if c == clm: n1=n n+=1 else: print(f"コラム{clm} X座標 = {sta}_{n1} box={bs} 差{sta-bs}") break print("end") tree.bind("<Button-1>",call1) root.mainloop()
補足情報
Python 3.9.5

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/11/03 09:37