Search code examples
pythontkintertreeviewttk

Remove header row in tkinter treeview


Can anyone tell me how to remove the header row in a tkinter Treeview?

from tkinter import *
from tkinter import ttk

root = Tk()

NewTree= ttk.Treeview(root)
NewTree.pack()
NewTree.heading("#0", text="How to remove this row?")
NewTree.insert("", "0", 'item1',text='Item number 1')

root.mainloop()

Solution

  • Use the show option to only show the tree and not the heading:

    NewTree = ttk.Treeview(root, show="tree")
    

    Relevant documentation

    From docs.python.org:

    show

    A list containing zero or more of the following values, specifying which elements of the tree to display.

    • tree: display tree labels in column #0.
    • headings: display the heading row.

    The default is “tree headings”, i.e., show all elements.

    Note: Column #0 always refers to the tree column, even if show=”tree” is not specified.

    From the New Mexico Tech Tkinter reference:

    show

    To suppress the labels at the top of each column, specify show='tree'. The default is to show the column labels.

    From TkDocs:

    You can optionally hide one or both of the column headings or the tree itself (leaving just the columns) using the show widget configuration option (default is "tree headings" to show both).