現在、Tkinterを使用したデスクトップアプリの開発を行っています。その中で、treeViewを使用した表出力の部分があります。表について、横スクロール機能をつけているのですが、特定の列(前3列ほど)を固定したいと考えています。しかし、固定方法について調べても見つけることができなてい状態です。
横スクロール時の列固定について参考になりそうな資料等教えていただけると助かります。よろしくお願いします。
コードと実現させたいイメージは以下の通りです。よろしくお願いします。
def show_table(data_table, root, num_of_add_column): tree1 = ttk1.Treeview(root) columns = [1, 2, 3, 4] for i in range(num_of_add_column): columns.append(i + 5) tree1["columns"] = tuple(columns) # columns tree1["show"] = "headings" # normal table tree1.column(1, width=50) # width of column tree1.column(2, width=200) tree1.column(3, width=100) tree1.column(4, width=100) for i in range(num_of_add_column): tree1.column(i+5, width=120) tree1.heading(1, text="ID") # header index tree1.heading(2, text="name") tree1.heading(3, text="latitude") tree1.heading(4, text="longitude") for i in range(num_of_add_column): tree1.heading(i + 5, text="point_" + str(i)) for i in range(len(data_table)): id = data_table["id"].iloc[i] name = data_table["name"].iloc[i] latitude = data_table["latitude"].iloc[i] longitude = data_table["longitude"].iloc[i] values = [id, name, latitude, longitude] for j in range(num_of_add_column): distance = data_table["point_" + str(j)].iloc[i] values.append(distance) tree1.insert("", "end", tag=0, values=values) vbar1 = ttk1.Scrollbar(root, orient=tkinter.VERTICAL, command=tree1.yview) vbar1.pack(side = tk1.LEFT, fill = tk1.Y) vbar1.place(x=590, y=140, height=300) vbar2 = ttk1.Scrollbar(root, orient=tkinter.HORIZONTAL, command=tree1.xview) vbar2.pack(side = tk1.BOTTOM, fill = tk1.X) vbar2.place(x=40, y=435, width=550) tree1.configure(yscrollcommand = vbar1.set, xscrollcommand = vbar2.set) tree1.pack(side = tk1.LEFT) tree1.place(x=40, y=140, width=550, height=300)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/09 03:49