admin管理员组

文章数量:1401247

I'm building an admin panel using Tkinter in Python. I'm using ttk. Treeview to display computed salary data. I call tree.insert(...) and the data is inserted — I can confirm the values by calling:

tree.get_children()
tree.item(child_id)["values"]

The rows exist. But visually, the Treeview remains blank — no rows are shown.

Test rows inserted at startup show correctly. Computed rows show in console but not in the Treeview. Column count and value count match (9 columns). No errors are thrown.

Here's how I define the Treeview:

tree = ttk.Treeview(parent, columns=(...), show="headings")
tree.pack(fill="both", expand=True)
for col in columns:
tree.heading(col, text=col)
tree.column(col, width=130, anchor="center")

What I’ve tried:

-Wrapping the Treeview in a dedicated Frame

-Calling update_idletasks()

-Validating the inserted value count

-Verifying with .get_children() and .item() that data exists

What else could cause rows to be invisible even when the data is confirmed present?

I'm building an admin panel using Tkinter in Python. I'm using ttk. Treeview to display computed salary data. I call tree.insert(...) and the data is inserted — I can confirm the values by calling:

tree.get_children()
tree.item(child_id)["values"]

The rows exist. But visually, the Treeview remains blank — no rows are shown.

Test rows inserted at startup show correctly. Computed rows show in console but not in the Treeview. Column count and value count match (9 columns). No errors are thrown.

Here's how I define the Treeview:

tree = ttk.Treeview(parent, columns=(...), show="headings")
tree.pack(fill="both", expand=True)
for col in columns:
tree.heading(col, text=col)
tree.column(col, width=130, anchor="center")

What I’ve tried:

-Wrapping the Treeview in a dedicated Frame

-Calling update_idletasks()

-Validating the inserted value count

-Verifying with .get_children() and .item() that data exists

What else could cause rows to be invisible even when the data is confirmed present?

Share Improve this question asked Mar 23 at 4:15 bastreesbastrees 112 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

Turns out the problem was that I accidentally created two different Treeview widgets.

One Treeview was created and packed into the GUI (which is the one actually visible), and then a second salary_tree was defined later in the code — this second one was used for all .insert() calls.

So while the data was being inserted, it was going into a different Treeview instance that wasn’t displayed on screen.

Once I deleted the second (duplicate) salary_tree = ttk.Treeview(...) line, and made sure all insertions went into the original Treeview, the rows displayed correctly.

本文标签: