Python Forum
[Tkinter] Treeview heading event detect.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] Treeview heading event detect.
#1
I try to detect which column of Treeview heading clicked, like below:

from tkinter import Tk, ttk

def click_test(event):
	region = tree_1.identify('region', event.x, event.y)
	if region == 'heading':
		if event.x in range(0, 25):
			print('#0 clicked')
		elif event.x in range(26, 100):
			print('c1 clicked')
		elif event.x in range(101, 175):
			print('c2 clicked')

root_ = Tk()

tree_1 = ttk.Treeview(root_, height = 15, columns = ('c1', 'c2'), selectmode = 'browse')
tree_1.column('#0', width = 25)
tree_1.column('c1', width = 75)
tree_1.column('c2', width = 75)
tree_1.heading('#0', text = '#0', anchor = 'w')
tree_1.heading('c1', text = 'column 1', anchor = 'w')
tree_1.heading('c2', text = 'column 2', anchor = 'w')
tree_1.grid(row = 0, column = 0)

tree_1.bind('<Button-1>', click_test)

root_.mainloop()
Is it have more intuitive/simply way to do that except detect 'event.x' value? similar using '#0', 'c1', 'c2' to identify?
Reply
#2
An event must be bound to an event handler.
Here's a good place to learn more: https://tkdocs.com/tutorial/tree.html
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tkinter] [split] Is there a way to embed a treeview as a row inside another treeview? CyKlop 5 3,427 Oct-20-2021, 12:14 AM
Last Post: CyKlop

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020