Treeview - Python Tkinter GUI Tutorial
ฝัง
- เผยแพร่เมื่อ 20 ต.ค. 2024
- In this video I'll show you how to use the Treeview in Tkinter.
Treeview is a ttk widget that creates a sort of table for data in a visually appealing way. It's great for visualizing data from a database, or from a spreadsheet, or any other large amount of data that you want to output onto the screen.
There's a TON of things you can do with the Treeview, and in this video we'll just introduce the basic usage of it.
▶️ Watch Entire Tkinter Playlist ✅ Subscribe To My TH-cam Channel:
bit.ly/2UFLKgj bit.ly/2IGzvOR
▶️ See More At: ✅ Join My Facebook Group:
Codemy.com bit.ly/2GFmOBz
▶️ Learn to Code at Codemy.com ✅ Buy a Codemy T-Shirt!
Take $30 off with coupon code: youtube1 bit.ly/2VC9WUN
▶️ Get The Code
bit.ly/3fLFQ8p
First comment just to appreciate the consistency and efforts you put in this and your way of teaching which makes doing python a lot more interesting!
Thanks! I appreciate that!
This video was quite early!
A.K.A
Your videos are AWESOME!
They are like 20% cooler than other tutorials!
ha thanks!
Thanks Sir No one teaches tkinter in depth like you you have helped me earn money thanks sir
Thanks so much John, I appreciate you so much for taking on this topic. You are awesomely great
You are so welcome! glad you enjoyed it!
Ok I have to say this you are explaining so good and your voice is clear good . This channel should deserve 1million subscribers👍👍👍😎😍😊😀
We can also do this for hiding the ghost column:
tree = ttk.Treeview(root, columns=columns, show='headings')
The show='heading' hides the first column (column #0) of the Treeview.
The show option accepts one of the following values:
'tree' - shows the column #0.
'heading' - shows the header row.
'tree headings' - shows both column #0 and the header row. This is the default value.
'' - doesn’t show the column #0 or the header row.
Right ?
Gotta love John Elder. What a master at teaching.
Thanks!
This video and the next few helped a TON to learn tkinter Treeview! Thanks a lot!
Awesome, glad it was useful to you!
Thanks so much! I was looking for this for many days on the web!!!
Glad I could help!
Legend says, he still is doing tkinter tutorials to this day...
obviously???
@@sudin99and81 wow dude you are really smart for not understanding a joke
hahaha
@@linuxguardian8596 i was born smart
I hope you to make video on how to edit the shape of the treeview colors , padding and other stuffs .
You are the best one who explains tkinter widgets.
Will probably be doing that, yes :-)
Thank you sir for your whole playlist and efforts . Blessing from India
Glad you enjoy them!
Thanks John! This is what I was waiting for from you. 👍🏾👍🏾👍🏾👍🏾👍🏾❤️❤️❤️
Awesome, glad I could help!
Although your trainings are free, i bought them on udemy. Thank you so much, i really learned a lot!
thanks, appreciate it!
what a great video! thank you so much you are my new guru! definitely subscribed
Awesome, thanks!
Thankyou John sir !! you really help me to solve a big problem of my project
Happy to hear it!
These videos are amazing. The guy who gave this video a dislike is crazy
ha thanks!
Uno de los pocos cursos en ingles que podes entender sin hablar Ingles, Que Grande Codemy, muchas Gracias
Beautiful. Tables i love tables, csharp, java, vb.net, html, javafx. Thank you sir.
welcome
Good demonstration of how to use a treeview to make a table !?
Glad you enjoyed it!
Simply, the best. Thanks.
I was looking forward to this one. Great one!
Glad you liked it!
Smash that like button guys n gals! its free! great python tkinter tutorial, Codemy. Thanks
Yes.. this is what i need instead of using listbox. Thank you Sir
You are welcome
thank you so much , u can't imagine how it's helping me rn =)
Congrats on 100K Subs
Thanks!!
Great lesson, thank you for your time and efforts.
Welcome!
I found the video I needed,that stupid ghost column seemed inmortal, thank you
Glad you got it sorted out!
Hello john, can we add a button as a value of a cloumn in treeview?
Thank you so much for your helpful videos! Just curious, is there a reason you are using an iterator variable for your for loops instead of enumerate()? Just curious if I have been doing it wrong or if there are any serious drawbacks to using enumerate. Thanks!
EDIT: Specifically at 18:05
No particular reason.
Is there a way to not make the columns disappear out of frame when you resize the column using the resize bar on their right?
Hi John, thank you for the tutorial. I have a little problem, I hope you could help me. I have two Treeviews next to each other, and I want them to be of the same width. The problem is that I have many headings, so the first one occupies almost all the space, and the second one is superthin (as much as the space that's left allows).
Can you give me a hint on how to fix the width of treeviews? Thank you a lot, your videos are very helpful :D
Thanks for your helpful videos. It's ideal if you have a tutorial video showing how to add multiple rows (such as data in this treeview tutorial video) into a database (such as MySQL). All users have to do is to press a button to save those rows of data in the treeview into the db. Many thanks!
I was looking for this thank you sir
Enjoy!
14:20 if I need the little check box not on column #0, say on column #2, what to do? Thanks!❤
Very good tutorial!, be aware, in the code i made, if i hide the first column (the #0), will hide the "+" icon for drop down/up the list
yep
its a great effort sir, I have a question that in most of software grid is used to separate between cells in display here how can we deploy grids in Treeview, please comment
Hi everyone! I couldn't find information on the Internet. Therefore, I just wanna ask in here.
Is it possible to display numbers in treeview tkinter with separator , isn't?
my_tree['show'] = 'headings'
and the column with #0 will be hidden
Sir,I want to show another treeview when I click on row of treeview but it is happening for anywhere click on treeview,
Can you help me
Hello John !
Can we add sqlite3 database data to this tree view?
Plz reply !
Of course.
Thanks for this video #116. My question: Once we have the table, it is posible ti completely hide it and show a new one with same headers buth diferent rows data?
Sure, I probably have videos back at the beginning of the playlist on hiding widgets. Then you would just build a second one with whatever headers you wanted.
Is it possible to fill columns with data and not by row i mean column by column like i mean is it possible to fill this with a dataframe?
Is there a way to prevent the expansion triangle from being indented in sub rows? I want my expansion triangles to always be up against the left side no matter how indented the rest of the row is.
how do you do for many text, example: some lines of text
Hi John. As always, great tutorial and very well explained! I am building an app where I can generate a different Treeview based on different options selected from one or more comboxboxes. I would select 1 or more comboboxes and then hit a button called 'Generate Report' and it will display the data in the treeview. What I am struggling to do is each time I hit the 'Generate Report' button, it always creates another Treeview widget below the previous Treeview widget. I want the function to be able to 'remove' the treeview widget and then display the different Treeview widget once the function has completed. I have tried placing pack_forget() in certain places in the function but it doesn't seem to be working. Any tips on what things I need to look at or look into?
Many ways to do it, pack_forget, destroy, .config, etc. You could put each treeview in a frame then hide/show the frames...you could use the same treeview but just delete all the data in it each time...like I said, there's just a ton of ways to do it. If pack_forget didn't work for you, it's probably because you didn't do it correctly :-p
I am trying to figure out how to put check boxes for selection state on the side. I'm sure I will figure it out soon.
you make it so easy
thanks a lot
Glad you're enjoying the videos!
Great tutorital. I know it's an old video but it would be really nice if you could do zoom out of the display. It's hard to see the all lines of code (or most of them) while you're explaining.
the code is in the pinned comment, as always.
I've been searching for this a lot but I didn't what is the name of this widget and how it works thank you Mr.Elder
Thank you for a lesson!
Thanks a lot for all the videos! They're super helpful! A very general question, I need to present tabular data from a SQL query. What is the best way to do that? Frame, Treeview, Table class, something else? It doesn't have to be super fancy, its more about getting data on the screen :)
It depends completely on you and what you need. I have lot's of videos throughout this playlist on that very thing. Take you pick.
thanks man👍
but i have a question , how can i show treeview values in text widget and print by .txt file or Excel file??
I have videos on all that
Thank you very much for your video.
You are welcome
I need to scan a server, that has values and nodes. Each node may have a children nodes and so on. I scan it recursively. Is it possible to use Treeview to show the contects of a server?
what contents? Treeview can show any data that you have access to
Where do you obtain a man page or reference for most up to date and all of the tkinter commands, language syntex, etc. ?
Not sure there are any tkinter man pages
Hii, is there any chance I can add a footer to my treeview, that allows me to watch the contents the whole time, as the heading does. Thank you!
I'm not aware of that
okey thanks!! @@Codemycom
sir actually i want to fill a *cell* with many string.... if i fill the by treeview its hiding so pls tell how to increase the row height like column sir
Can we send emails using python ?? 🤔
Hellow Dear could you explain about how we can do that start column from right side to left side for Arabic language?Thanks
Thanks a lot sir !! It was very helpful
Glad it was helpful!
How to attach a command to each treeview row. Like when i select a row some function of my creation is run
I have tons of videos on treeview, check them out
Please Could you tell me, if I need to create a database and add information by rows (not by columns). How Can i make it?
I have videos on using a database further in the playlist. And you have to have both rows and columns, it's impossible otherwise.
thanks for treeview lessons
Glad you liked em!
@@Codemycom i have question, could we add new column when code is running?
@@erensolmaz2435 why not?
Hi john, how can we add check boxes with select all option and to select and unselect the rows in a treeview?
I don't have any videos on that
Is there any way to do that?
@@harshasrikanugula6225 Sure
Your tkinter videos really helped me out,
And can you make videos about Kivy mobile application
Looking forward 👀
Yep, Kivy coming very soon...maybe next week.
@@Codemycom Thanks
@@pythoncoder6850 for sure...Kivy is fun
How can I insert text with spaces it's not found
I think that ghost column was allocated for the numbering of the items.... MAYBE....
very helpful video
Thanks! Glad you liked it!
@@Codemycom i just build an app by your lesons thanks alot
@@phudinhtruong Awesome!
@@Codemycom love your contents
@@Codemycom what u r doing for us are so amazing
another great tutorial.
Thanks!
How to save tree data as pdf or print hardcopy
Can we create multiple treeview associated with combobox so that for each option in combobox will have separate treeview
Any help regarding this small problem can any one give me small logic i have tried but unable to get exact logic
Sure, why not?
sir how to clear the treeview from gui .. i am making a gui for dbms project.. and i am using treeview to display table.
I discuss this in an earlier treeview series on the channel: th-cam.com/video/tvXFpMGlHPk/w-d-xo.html
Good morning, can you help me with Python?
I have a Python program that takes data and writes it to a database.
But I need to add a function that takes the registration date, and counts 90 days, and after 90 days print a message to the user informing that the registration already has 90 days, you know?
I'm researching on the internet but I'm not able to develop something that works, I don't know anyone who understands and can help me with this, can you help me?
This is trivial, but sorry I don't have any videos on it and don't do consulting work.
Thank you for your wonderful videos! How can I add the the indices of the dataframe to the rows of the phantom column when I initialize the tree with the following code?
tree = ttk.Treeview(root)
tree.pack()
df=pd.read_excel("Iris.xlsx")
df_rows=df.to_numpy().tolist()
cols = list(df.columns)
tree['columns'] = cols
for col in cols:
tree.heading(col, text=col)
for row in df_rows:
tree.insert("", "end", values=row)
tree.column('#0', width=50, stretch='no')
Can this treeview widget be used as a playlist for music player? Which has column like track name, artist, genre, length and all that.
I don't see why not...it would take quite a bit of hacking around, so I'm not sure why you'd want to...
@@Codemycom Nice, if you could do a tutorial for it, it would be great.
I know that `mutagen.File(filepath, easy=True)` returns a dictionary of information tags inside the music file. So I can do a for loop, and use the index of those to insert into specific columns maybe ...
Well, what's the point of learning to code, if you can't experiment :D.
@@apoorv9492 ha, yeah you're on your own for this one ;-)
@@Codemycom
I wanted to ask another thing, you showed how to `askopenfilename()`, what if I want to add a folder, or bunch of folders instead of files?
@@apoorv9492 What do you mean? How do you add a folder? What does that mean?
if we are writing from tkinter import *
why do we need tp write
from tkinter import ttk?
Because that's just how it works
Thanks Sir, Very Nice Use Full Code
Welcome
when i add like 20 columns my screen will expand and i can not see the end, if there any method where i can fix that, like the Treeview could be expand in the Fram but not the Fram!
thanks
Do you mean like with a scrollbar?
@@Codemycom yes
@@Codemycom i used the Pack method and git ride of the Grid method for the sscrollbar with expand=X and expand=Y and it work for me, thnak's for support
one another question as you are profi, what do you think is the most beautiful GUI libs from python? i find tkinter look very old, but you made it junger ;) any idea modern GUI with powerful resourcess on Internet?
@@quteibaalsalaa6346 No, it just depends on the requirements for your specific project.
thanks for the tut.
Sure thing
Hey thank u for the video...
I am getting an error...
_tkinter.tclerror item not found
Can you clarify it please...
what's the entire error
How can we upgrade treeview? I mean user will write something in entry to appear on this
I think I cover that later
you the BEST
thanks
17:46 I think rather than manually using count as variable, it will be better to use enumerate instead.
My way works...enumerate works...there are always a million ways to do anything. There is no right or wrong in coding, really.
if we keep it like this:
my_tree.column("#0",width=0,minwidth=0,stretch=NO)
stretch does not work!!
why?
It should...try removing the minwidth thing... did you import tkinter the same way that I do? make sure you spelled stretch correctly
@@Codemycom it worked!!
thanks!
keep up the good work!!
@@asifsaad5827 awesome
Thanks a lot 😄
Welcome!
What is the difference between a Treeview and a Listbox
really? they're completely different
How to cotent wrapped inside row?
Not sure what you mean
hey thank you so much for the awesome tutorials again! I'm having a little bit of trouble. I'm getting an error saying: unknown option "-idd". That's pretty strange becaus it is an option ;p can someone help me pleas becaus I really want to continue with these tutorials they're verry interesting. Greetings from Belgium!!!
it's `iid` not `idd` 😂😂
thks for this video john! sir Please how to put Treeview color
I believe you can use tags like in the text box widget
I Need Select Item On Click Treeview
How do you make it so the child is indented when clicked
hi,
the minwidth=0 make the first column disapear too :=)
very good tutorials
thanks a lot
You're welcome
Thanks. Waiting for pagination in treeview. Please!
Interesting suggestion!
How would we create a forloop which also adds a child column below every parent?
very good
Thanks
Thanks man
Welcome!
We need exemple using the result off query select of table and insert the result in treeview. Sqlite3.
I've got videos on that on the playlist
thanks dude
Happy to help