Python tkinter Tutorial: Simple To Do List App

Поделиться
HTML-код
  • Опубликовано: 17 окт 2024

Комментарии • 201

  • @StuBnew
    @StuBnew Год назад +1

    This is my first ever using python (dabbled in C++ and javascript in the past, but always got confused), this is amazing, thank you, so easy to follow and I have learnt a lot. I also added SHOWINFO (same way as showwarning, if anyone needs it) for the save, so a messagebox comes up letting me know it has saved

    • @TokyoEdTech
      @TokyoEdTech  Год назад +1

      Thanks! Glad it was helpful. Good job adding the save confirmation. Keep on codin'!

  • @planetsk6753
    @planetsk6753 3 года назад +4

    Bruh Seriously Ur Soooo good I hv seen some other tutorials about a to do list and they are like So just write this billion lines then this under a second lol keep going all the best

  • @hugorocha8705
    @hugorocha8705 4 года назад +5

    I really enjoyed this tutorial and would really like to see more GUI ideas using tkinter. Thanks

    • @TokyoEdTech
      @TokyoEdTech  4 года назад +1

      Thanks. I'm definitely open to suggestions!

  • @Milkamoki
    @Milkamoki Год назад +1

    Hey great tutorial!!!
    You're a very good teacher! I love the way you explain everything by translating code into sentences.

    • @TokyoEdTech
      @TokyoEdTech  Год назад +1

      Thanks - glad you liked it! Keep on codin'!

  • @zagesh.
    @zagesh. 2 года назад +3

    Great video. Easy to understand glad i found this tutorial
    Keep it up

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      Thanks - glad you found it helpful. Keep on codin'!

  • @olorcain
    @olorcain 3 года назад +2

    I added a button for clearing all items on the todo list, thank you for posting this tutorial! It was very helpful.... *Update I also added a button to include date time :)

    • @TokyoEdTech
      @TokyoEdTech  3 года назад +1

      Awesome - I always encourage my students to add their own ideas...it's fun and a great way to learn. Keep on codin'!

  • @ganishiranaweera3017
    @ganishiranaweera3017 Год назад +1

    This is my first project. I learned a lot. Thank you so much ❤

    • @TokyoEdTech
      @TokyoEdTech  Год назад

      You're welcome - glad to hear it. Keep on codin'!

  • @Total_c11
    @Total_c11 3 года назад +2

    Excellent tutorial, really helped me understand how to make an app with tkinter. Even managed to do the last try/except block before you showed how to do it :)

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      Thanks - glad it was helpful. Keep on codin'!

  • @filippians413
    @filippians413 3 года назад +1

    As soon as you said "test it" (so that I wouldn't pay the price later) I ran my code and realized I entered a period after height=3 instead of a comma. If I had left it and tried testing much later it could have been very time consuming to debug.
    Lesson learned! LOL

    • @TokyoEdTech
      @TokyoEdTech  3 года назад +1

      I'm very happy to hear someone is taking that lesson to heart!

  • @alk1954
    @alk1954 2 года назад +2

    Thanks! This really helped me! You have earned a new subscriber!

    • @TokyoEdTech
      @TokyoEdTech  2 года назад +1

      Welcome to the team..keep on codin'!

  • @realnice3672
    @realnice3672 4 года назад +1

    nice i made skeleton of GUI meaning frontend part but i had difficulty to figure out backend part like functions with tkinter.
    thank you i get load and save functions , scrollbar and warnings.

  • @Ezra-bt6oz
    @Ezra-bt6oz 4 года назад +2

    Hey I like your videos! Im a beginner python learner!

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Thanks - welcome to my channel!

  • @amritatwal7834
    @amritatwal7834 4 года назад +1

    Thank you for this! I found it really helpful.

  • @MANISHAGUPTA-te3jl
    @MANISHAGUPTA-te3jl 3 года назад +2

    Such easily and concisely explained!!

  • @danieledeluca7593
    @danieledeluca7593 7 месяцев назад +1

    Really nice and simple project, thanks for the explanation

    • @TokyoEdTech
      @TokyoEdTech  7 месяцев назад +1

      You're quite welcome - keep on codin'!

  • @abhavjain9363
    @abhavjain9363 4 года назад +1

    hey there just wanted to ask can we convert all this into a proper app that doesn't require the code to run. Maybe you could do a tutorial on that. If not possible no problem👍
    You are the best teacher by the way

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Try searching for pyfreeze or py2exe / py2app.

  • @Teo-dw3ti
    @Teo-dw3ti 4 года назад +1

    Scrollbar with grid
    vsbar = Scrollbar(container, orient=VERTICAL, command=lista_tareas.yview)
    vsbar.grid(row=0, column=1, sticky=NS)
    lista_tareas.configure(yscrollcommand=vsbar.set)

  • @soumikchowdhury1707
    @soumikchowdhury1707 4 года назад

    You explained well in simple way. Thanks for making this video . These types of video brings more curiosity about coding. how can I know more about all modules such as tkinter , pickles, etc? Where I can get all basics of tkinter etc ?

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      You're welcome. This is my go-to for tkinter info: effbot.org/tkinterbook/tkinter-index.htm

  • @matusb6638
    @matusb6638 3 года назад

    Excellent tutorial, simple and straight to the point :), thank you.

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      Thanks - glad you liked it. Keep on codin'!

  • @hooriaamin1702
    @hooriaamin1702 3 года назад

    thats the best thing anyone can do to help me in this time thank you sir

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      You are quite welcome - keep on codin'!

  • @bereketseyum1246
    @bereketseyum1246 4 года назад +3

    Nice tutorial it looks the second version of your to do list app👍

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Thanks. Yep, version 2. The old one was written in Python 2, this one is in Python 3.

    • @bereketseyum1246
      @bereketseyum1246 4 года назад +1

      Your welcome

  • @Krutchhh
    @Krutchhh 3 года назад

    thank you sir, i needs a beginer project with a walk through

  • @bergunaga1540
    @bergunaga1540 2 года назад +2

    may I know, what algorithm are you using in this program? what are linked lists?

    • @yeobuustation
      @yeobuustation 2 года назад

      Yups, Linked list or array ?

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      @@yeobuustation It is just a simply list (array). A linked list is not necessary for this program.

  • @nils_b
    @nils_b 2 года назад +1

    Good video, I learnt much!

  • @kingheisenberg674
    @kingheisenberg674 2 года назад

    Hey man! really appreciate your help by teaching us and helping the society.
    I have one question from this video - the variable "task" you defined in add_task function is a local variable right? then how are accessing "task" variable in load_task function? Are they different variable but same name ? sorry if i sound stupid.
    one more question - can you help me understand for using the line "for task in tasks" inside load_task function?
    :)

    • @TokyoEdTech
      @TokyoEdTech  2 года назад +2

      Hiya - that's not a stupid question at all - it's a great question! I haven't looked at the code in a long time, but if you have for task in tasks, then that task is a local variable (part of the for loop in this case).

    • @kingheisenberg674
      @kingheisenberg674 2 года назад +1

      @@TokyoEdTech hey man !
      Thanks for communicating with your audience ❤️
      I did some research and tried to educate myself now when i rewrote the code alone (not to brag lol) i understood the process.
      Really enjoy your videos. Waiting for your next video ☺️

    • @TokyoEdTech
      @TokyoEdTech  2 года назад +1

      @@kingheisenberg674 You're welcome. Keep on codin'!

  • @kevinkevin1538
    @kevinkevin1538 3 года назад

    Thank you on this. So helpful. Please help. I want to add show warning message box when the user wants to save tasks but the list box is currently empty. Is that possible?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      It should be if you use what is shown in this video.

  • @eddenbg
    @eddenbg 2 года назад

    just a question about the scrollbar, why do we really need it? i noticed that even without it, i can scroll on my touchpad using 2 fingers, and it works

    • @TokyoEdTech
      @TokyoEdTech  2 года назад +1

      I'm pretty sure it is automatic - so if it is there you can ignore it.

  • @awesome_pi_guy
    @awesome_pi_guy 4 года назад +1

    Do you have a Raspberry pi?
    Also do you have any tips for someone trying to make videos in the same area? Ive have been trying for sometime and am getting almost no views

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Hi. Sorry, I do not. But it is something I'd like to get into someday.
      It's really hard to get traction on RUclips - takes lots and lots of time. It took me almost 2 years to get to 1000 subscribers, but I didn't release much during that time. I'm much more active now.
      I took a look at your channel. You need to update your landing page. Your channel name is awesome_pi_guy, but all I see is some Minecraft videos. Click the customize button and arrange your Pi videos at the top. Put the Minecraft videos in a separate section and add titles to them as well like you did to the PI videos. Finally, I'd make the head shot smaller so it takes up less of the screen and work on your lighting.
      Beyond that, keep making content...it's a loooong marathon, not a sprint.

    • @awesome_pi_guy
      @awesome_pi_guy 4 года назад +1

      @@TokyoEdTech Thank you so much also i was thinking about putting my minecraft videos on a diffrent channel.

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      @@awesome_pi_guy That's probably a good idea - you want to focus on your niche.

    • @awesome_pi_guy
      @awesome_pi_guy 4 года назад +1

      @@TokyoEdTech Thank you for your time, keep doing what your doing and ill keep watching

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      @@awesome_pi_guy You're welcome - good luck with your channel!

  • @razorblack3287
    @razorblack3287 4 года назад +1

    u r great teacher

  • @bereketseyum1246
    @bereketseyum1246 4 года назад +2

    Can we add images or background Image in tkinter module ?

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Yes. I don't know the exact code, but you should be able to find it in the docs.

    • @bereketseyum1246
      @bereketseyum1246 4 года назад +2

      @@TokyoEdTech OK thanks

  • @kareensingh3914
    @kareensingh3914 4 года назад

    This Helped Me a Lot, One question - will you be making more games in python. GREAT TUTORIAL

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Glad to hear it! Yep, I'll be doing more eventually - stay tuned!

    • @kareensingh3914
      @kareensingh3914 4 года назад

      @@TokyoEdTech Thank you, excited for more.

  • @Dark-rp3qr
    @Dark-rp3qr 4 года назад +1

    just a suggestion: when you add a task, you made like this:
    def add_task():
    if task != "":
    But if you add some whitespaces it will still add the task.
    that's why it should look like this:
    def add_task():
    if task.strip() != "":
    So now even if you input multiple whitespaces, it won't add the task

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Awesome suggestion - thanks!

  • @pythonprospect532
    @pythonprospect532 2 года назад

    I was wondering if I could potentially use this as a side project for my resume, or if it would be considered plagiarism. If not that is completely fine, am just wondering

    • @TokyoEdTech
      @TokyoEdTech  2 года назад +5

      I personally, don't care. But if something is on your resume, it should reflect what you can do, not what I can do. I would take the concepts learned and make your own program. Or at least add features to the base program to show what you can do.

  • @amenhale40
    @amenhale40 3 года назад +1

    At def load_task when I write except it says invalid syntax?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      There is a link in the description labeled “NEED HELP?” Check that out and get back to me. Keep on codin’!

  • @jaredmalan8625
    @jaredmalan8625 2 года назад

    how would you write at pytest for this program? I am trying to figure out scenarios to test possible problems, but I can't seem to figure out how to do, especially for the first fuction. any advise??

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      Hmm...you'd probably need to check the list of tasks after each function call.

  • @hooriaamin1702
    @hooriaamin1702 3 года назад +1

    you are helping me alot

  • @swastiksarkar
    @swastiksarkar 4 года назад

    Can you help me understand this?
    I have been creating widgets like this.
    label1 = Label(root)
    What is this actually?
    label1= tkinter.Label(root)
    Will both yield the same type of label? If not what is the meaning of writing the label code as tkinter.label rather than only 'Label'?
    Also the same in
    root= tkinter.Tk() and
    root =Tk()
    What is the difference?

    • @Teo-dw3ti
      @Teo-dw3ti 4 года назад +2

      I dont speak english good but his the traduction:
      The difference is that with the first form as used in the video you are importing so:
      import tkinter
      only in the second way that it is without tkinter you need to import like this:
      from tkinter import * ( or the module you want for example messagebox)
      I hope you understood me
      Español:
      La diferencia es que con el primera forma como usa en el video estas importando así:
      import tkinter
      solo que de la segunda forma que esta sin tkinter necesitas importar así:
      from tkinter import * ( o el modulo que quieras por ejemplo messagebox)
      espero que me hayas entendido

    • @TokyoEdTech
      @TokyoEdTech  4 года назад +2

      I think Mateo explained it quite well!

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      @@Teo-dw3ti Gracias!

    • @swastiksarkar
      @swastiksarkar 4 года назад

      @@TokyoEdTech I have a question
      'wb' basically rewwrites the old tasks with new ones and and all old tasks gets deleted. Is there way to append the new tasks to the old ones?

  • @IntergalacticPotatoGamer
    @IntergalacticPotatoGamer 2 года назад +2

    Very cool!!!

    • @TokyoEdTech
      @TokyoEdTech  2 года назад +1

      Thanks- glad you liked it!

  • @meesiphht2769
    @meesiphht2769 3 года назад

    Do you have a scheduler task related one that you have certain times for doing tasks and maybe operate a web site at the appointed time?
    or something like that?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад +1

      I don't have that, but it would be a nice addition to the program.

    • @urjitchakraborty5813
      @urjitchakraborty5813 3 года назад

      im made an auto zoom program in python and i have a function that automatically join zooms at a specified time

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      @@urjitchakraborty5813 Cool!

  • @SkyFly19853
    @SkyFly19853 4 года назад +1

    I love those Python GUI tutorials...

  • @naokimc
    @naokimc 3 года назад

    I'm using python idle to create this, eventually, when I load my tasks, it always shows the Tkinter popup that I created. Should I create a file called tasks.dat on my desktop?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      I'm not sure what you mean - the file will be created in the same folder as your .py file, or you can specify with the full path.

  • @matthewkempster3335
    @matthewkempster3335 4 года назад

    If you can help me with this problem I am on a Mac and I can’t get the scroll wheel to move on scroll at so when I click and move my cursor down it doesn’t seem to go down

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Heya - check the link that says "NEED HELP?" and get back to me.

  • @cocoarecords
    @cocoarecords 3 года назад +1

    incredible channel

  • @lemonmonkey9390
    @lemonmonkey9390 11 месяцев назад

    Thanks, it is really useful.

    • @TokyoEdTech
      @TokyoEdTech  11 месяцев назад

      You're welcome. Keep on codin'!

  • @IntergalacticPotatoGamer
    @IntergalacticPotatoGamer 2 года назад

    When I tried to ran it it show me this error , but the virable 'tasks' didn't reference before line 24
    File "C:\.......\Python\To-Do_list.py", line 24, in load_tasks
    tasks = pickle.load(open(tasks.det, 'rb'))
    UnboundLocalError: local variable 'tasks' referenced before assignment
    pls help

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      Heya, can you paste all of your code here so I can take a look?

    • @IntergalacticPotatoGamer
      @IntergalacticPotatoGamer 2 года назад +1

      So, I fixed it by replacing the virebles;)

    • @TokyoEdTech
      @TokyoEdTech  2 года назад +1

      @@IntergalacticPotatoGamer Success!

  • @bereketseyum1246
    @bereketseyum1246 4 года назад +2

    Hi Where do you download your gif images ?

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      I usually use openclipart.org - but you'll have to convert the images to the right size and to .gif format yourself.

    • @keerthivarmanprakash3120
      @keerthivarmanprakash3120 4 года назад +1

      @@TokyoEdTech Yeah, you can even use GIMP or www.piskelapp.com for online

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      I

    • @bereketseyum1246
      @bereketseyum1246 4 года назад +1

      @@TokyoEdTech OK thanks

  • @gyangaha109
    @gyangaha109 2 года назад +1

    thanks very much sir

  • @mhm6
    @mhm6 3 года назад

    when you first open the todolist python program, the listbox will be empty by default. If you accidentally click the save button during this time, then you will save a blank listbox and override your previously stored errands. Is there a way around this or do you just need to be careful when pressing the save button at the beginning of the program (when the listbox is empty before you add or load errands)?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад +1

      You could add something like this:
      if len(tasks)! =0:
      # Save data

    • @mhm6
      @mhm6 3 года назад

      @@TokyoEdTech so simple i dont know why i couldn't think of that. thank you, sir!

    • @TokyoEdTech
      @TokyoEdTech  3 года назад +1

      You are welcome - keep on codin'!

  • @soroushbolbolabadi9305
    @soroushbolbolabadi9305 3 года назад

    thank you for your useful Tutorial , but your program has a bug and please tell me how can i fix this bug .
    when we saved the tasks and restart the program, our data is repeated many times.
    sorry for my poor english

    • @TokyoEdTech
      @TokyoEdTech  3 года назад +1

      It's working fine on my computer - perhaps you copied the code incorrectly?

    • @soroushbolbolabadi9305
      @soroushbolbolabadi9305 3 года назад

      @@TokyoEdTech yeah my bad

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      @@soroushbolbolabadi9305 Next time you think "your program has a bug", please check thoroughly. It'll help you become a better coder and save us both some time. Keep on codin'!

  • @MartinAnsoAndCo
    @MartinAnsoAndCo 3 года назад

    can this be put on a phone that does not have python?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад +1

      No, sorry. You'd have to use something like Kivy if you want to use Python.

  • @omaravecilla9145
    @omaravecilla9145 Год назад +1

    Nice video

  • @senseme7627
    @senseme7627 3 года назад

    I would like to add slide feature to this app, like press hold slide and put the task above another also I would like to delete the tasks putting a delete button over the task. How would you do that? Can you guide me?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      I don't think tkinter is that advanced to allow dragging if items in a listbox. Check the documentation to be sure.

    • @senseme7627
      @senseme7627 3 года назад

      @@TokyoEdTech Thanks, I am not familiar with Python how can I achieve what I want? And do you think this would make a good enough portfolio project for a new grad?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      I'm not sure on either point. You could try a different GUI library such as QT. A portfolio should be your own work, not something copied from the Internet.

    • @senseme7627
      @senseme7627 3 года назад

      @@TokyoEdTech I will code the app myself for sure but I meant is it too simple or will it look good on resume anyways?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      I do this with high school students so it might be a bit simple. You can build on it though and add features.

  • @krishnataneja5181
    @krishnataneja5181 2 года назад

    I am not able to save tasks with pickle.dump
    AttributeError: 'function' object has no attribute 'dump' ⬅ it is showing this line

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      Can you share all of your code and I'll take a look.

    • @krishnataneja5181
      @krishnataneja5181 2 года назад

      @@TokyoEdTech I saw the same comment you replied to it but I am getting some error with it when I open the .txt file it's like question marks in rhombus shape then the text.

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      @@krishnataneja5181 Yes, that is what pickle does.

  • @ruchi727
    @ruchi727 4 года назад

    are you going to make any of the ultimate python turtle graphics turtorials???

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      I'm planning to add more videos to that - not sure the timing though - sorry.

    • @ruchi727
      @ruchi727 4 года назад +1

      @@TokyoEdTech thanks for letting me know, i thought you stopped
      making video's on ultimate python turtle graphics !!

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      @@ruchi727 You're welcome. Yeah - I just wanted to try a few other things that had a more immediate application for me.

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      @@ruchi727 You're welcome. The more recent projects I've been doing are useful for my current students so I'm prioritizing them.

  • @mekhaterrence6246
    @mekhaterrence6246 2 года назад

    thanks a lot for this video..............

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      You are welcome - keep on codin'!

  • @samirborcak2351
    @samirborcak2351 2 года назад +2

    If listbox_task is emtpy how to not save it ?

    • @samirborcak2351
      @samirborcak2351 2 года назад

      I find solution :D
      def save_tasks():
      tasks = listbox_tasks.get(0, listbox_tasks.size())
      check_is_empty = listbox_tasks.size()
      if check_is_empty != 0:
      pickle.dump(tasks, open("tasks.dat", "wb"))
      else:
      tkinter.messagebox.showwarning(title='Warning', message='There is noting to save')

    • @TokyoEdTech
      @TokyoEdTech  2 года назад +1

      Try something like:
      if len(tasks)!=0:
      # Save

  • @Damme_King
    @Damme_King 4 года назад +1

    Thank you 😊

  • @aditgaur1585
    @aditgaur1585 4 года назад +1

    Can you make a tutorial on making a text editor with tkinter?

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      I don't know a huge amount about that - making a simple text editor is really easy; however, color coding and syntax highlighting are not as easy.

    • @aditgaur1585
      @aditgaur1585 4 года назад

      Maybe like windows notepad?

    • @aditgaur1585
      @aditgaur1585 4 года назад

      I am not saying to make the next vs code, i am saying to make a simple application where you can save stuff and open stuff

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      @@aditgaur1585 This will get you started: www.tutorialspoint.com/python/tk_text.htm

    • @aditgaur1585
      @aditgaur1585 4 года назад +1

      Thank you so much!

  • @Jan-bo4bf
    @Jan-bo4bf 4 года назад

    Next video idea! Make a part 2 to this, but include a database, so the program can be closed, and the tasks still stay.

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Watch the video - it has saving and loading of data.

    • @Jan-bo4bf
      @Jan-bo4bf 4 года назад +1

      @@TokyoEdTech I know, but I mean like a proper database using SQL.

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      @@Jan-bo4bf Why? A database is overkill for a simple app like this. Gotta use the right to for the job.

    • @Jan-bo4bf
      @Jan-bo4bf 4 года назад +1

      @@TokyoEdTech I think it would be a neat way to show people how to work with them. This program obviously doesn't need it.

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      @@Jan-bo4bf I see - that makes perfect sense. Thanks for the suggestion!

  • @ashwins4776
    @ashwins4776 4 года назад

    Please suggest me a good RUclips channel (like your's) to learn javascript......

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Sorry, I can't say for sure - but do some searching as there are tons out there.

    • @awesome_pi_guy
      @awesome_pi_guy 4 года назад +1

      Hi, I don't know any channels about javascript. But khanacdamy.org has a free course on it.

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      Thanks!

  • @Teo-dw3ti
    @Teo-dw3ti 4 года назад +1

    Hola puedes enseñarnos a usar sqlite3?
    No se si me entiendas pero eres mejor

    • @TokyoEdTech
      @TokyoEdTech  4 года назад

      I haven't used it much, but would like to give it a shot someday. For this app, it is really too much though.

    • @Teo-dw3ti
      @Teo-dw3ti 4 года назад

      @@TokyoEdTech Thanks

  • @himanshushukla6451
    @himanshushukla6451 4 года назад

    hey there's only 480p

  • @mostafakhairy6569
    @mostafakhairy6569 Год назад

    cool

  • @primedestroyer9934
    @primedestroyer9934 4 года назад +2

    1st I guess

  • @ashwins4776
    @ashwins4776 3 года назад

    Can you upload a proper pygame tutorial from basic..?

    • @TokyoEdTech
      @TokyoEdTech  3 года назад

      Eventually - but not anytime soon. I may try to use Pygame with my students in Spring. If I do, I'll have to make a tutorial for it then.

    • @ashwins4776
      @ashwins4776 3 года назад

      @@TokyoEdTech thank you

  • @shinystick241
    @shinystick241 4 года назад +3

    First heart it!!

  • @gumpreeengthegumpreeeng
    @gumpreeengthegumpreeeng 2 года назад

    load task and save task doesn't work

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      Is there an error message? Can you share the code?

    • @gumpreeengthegumpreeeng
      @gumpreeengthegumpreeeng 2 года назад

      @@TokyoEdTech hello so it says that load task is not defined even though I already used Def
      And for the save button I wanna ask is it supposed to create the tasks.dat folder or am I supposed to create it because when I click save it doesn't appear anywhere
      I tried by downloading your code from the description but still when I hit save it doesn't appear anywhere

    • @TokyoEdTech
      @TokyoEdTech  2 года назад

      @@gumpreeengthegumpreeeng As I mentioned, can you share your code so I can take a look? Otherwise, I am just guessing.

    • @gumpreeengthegumpreeeng
      @gumpreeengthegumpreeeng 2 года назад

      How do I share the code?

    • @gumpreeengthegumpreeeng
      @gumpreeengthegumpreeeng 2 года назад

      I'm only 9 years old

  • @aditgaur1585
    @aditgaur1585 4 года назад

    Second!

  • @cXL781
    @cXL781 Год назад +1

    Hey man! My delete, save and load button does not work. One of the errors is " task.dat" cannot be found. THis is my code. I did it a liitle bit differently, but still the same structure as yours:
    import tkinter
    import tkinter.messagebox
    import pickle
    window = tkinter.Tk()
    window.title("ToDo list")
    # DEFINE FUNCTIONS
    def task_adding():
    todo_list = task_add.get()
    if todo_list !="": # not equal to something
    todolist_box.insert(tkinter.END,todo_list)
    else:
    tkinter.messagebox.showwarning(title="Attention!", message="To add a task, please enter some task")
    def task_removing():
    try:
    index_todo_list = list_frame.curselection()[0]
    list_frame.delete(index_todo_list)
    except:
    tkinter.messagebox.showwarning(title="Attention!", message="To delete a task, you must select a task")
    def task_loading():
    try:
    todo_list = pickle.load(open("task.dat","rb"))
    list_frame.delete(0,tkinter.END)
    for todo_list in task_add:
    list_frame.inset(tkinter.END,todo_list)
    except:
    tkinter.messagebox.showwarning(title="Attention!", message="Cannot find task.dat")
    def task_saving():
    todo_list = list_frame.get(0,list_frame.size())
    pickle.dump(todo_list, open("task.dat","wb"))
    # CREATE GUI
    list_frame = tkinter.Frame(window)
    list_frame.pack()
    todolist_box = tkinter.Listbox(list_frame, height=20,width =20)
    todolist_box.pack(side=tkinter.TOP)
    scroller = tkinter.Scrollbar(list_frame)
    scroller.pack(side=tkinter.RIGHT, fill=tkinter.Y) # Location of scrollbar Y = Vertical
    todolist_box.config(yscrollcommand=scroller.set) # execute the scroller command
    task_add = tkinter.Entry(window, width = 70) # the window where I enter the tasks
    task_add.pack()
    task_add_button = tkinter.Button(window, text="Click to Add task", font=("Times New Roman",12,"bold"),background="red",width=40, command=task_adding)
    task_add_button.pack()
    task_remove_button = tkinter.Button(window, text=" Click to Delete task", font=("Times New Roman", 12, "bold"), background ="yellow", width=40, command=task_removing)
    task_remove_button.pack()
    task_load_button = tkinter.Button(window, text=" Click to Load task", font=("Times New Roman", 12, "bold"), background ="brown", width=40, command=task_loading)
    task_load_button.pack()
    task_save_button = tkinter.Button(window, text="Click to Save task", font=("Times New Roman", 12, "bold"), background = "blue", width = 40, command=task_saving)
    task_save_button.pack()
    window.mainloop()

    • @TokyoEdTech
      @TokyoEdTech  Год назад

      Did you save before trying to load? Can you share the exact error messages?
      Plus you have
      for todo_list in task_add
      Does that make sense to you?

    • @cXL781
      @cXL781 Год назад

      @@TokyoEdTech Nope i did not save. And yes, i have couple of stupid line codes there. I will rewrite now.

  • @fscosx764
    @fscosx764 Год назад +2

    Hello sir
    Love from india 🎉❤❤ i used and modified it for my school project, i just improved the ui a bit, (please do check it out sir, please 🥺)
    import tkinter as c
    import tkinter.messagebox
    import pickle
    win=c.Tk()
    win.geometry("300x400")
    win.config(bg="blue4")
    #heading
    c.Label(win,text="..Task List..",font="bruney 19 bold",bg="black",fg="gold").pack()
    #frame to show task============================================================
    frame1= c.Frame(win,bd=2,bg="maroon")
    frame1.place(x=0,y=340,width=300,height=60)
    #frame2
    frame2= c.Frame(win,bd=2,bg="lightblue1")
    frame2.place(x=0,y=305,width=300,height=35)
    ##========================================================================
    #labelframe
    lf1=c.Label(win,text="write task:-",font="ariel 8 bold",bd=0)
    lf1.place(x=3,y=318,width=60,height=10)
    #================================
    #entry field
    entry_task=c.Entry(win,bd=2)
    entry_task.place(x=64,y=312,width=232)
    ##========
    #func for buttons
    def add_task():
    task=entry_task.get()
    if task != "":
    listbox_tasks.insert(c.END,task)
    entry_task.delete(0,c.END)
    else:
    c.messagebox.showwarning(title="warning", message="you must enter a task")
    ##
    def del_task():
    try:
    task_index=listbox_tasks.curselection()[0]
    listbox_tasks.delete(task_index)
    except:
    c.messagebox.showwarning(title="warning", message="you must select a task")
    ##
    def save_task():
    tasks=listbox_tasks.get(0,listbox_tasks.size())
    if len(tasks)!=0:
    pickle.dump(tasks,open("tasks.dat","wb"))
    else:
    c.messagebox.showwarning(title="warning", message="you must add a task")
    ##
    def load_data():
    try:
    tasks=pickle.load(open("tasks.dat","rb"))
    listbox_tasks.delete(0,c.END)
    for task in tasks:
    listbox_tasks.insert(c.END,task)
    except:
    c.messagebox.showwarning(title="warning", message="you must have tasks")
    ##
    #def delall_task():
    #tasks=pickle.load(open("tasks.dat","rb"))
    #if len(tasks) = 0:
    # c.messagebox.showwarning(title="warning", message="no past data")
    #lse:

    #buttons==================================================================
    ####
    #add button
    ad_bu=c.Button(win,text="ADD",font="ariel 10 bold",bg="dark orange",fg="black",bd=3,cursor="hand2",command=add_task)
    ad_bu.place(x=3,y=345,width=75,height=50)
    #delete button
    de_bu=c.Button(win,text="Delete",font="ariel 10 bold",bg="maroon",fg="black",bd=3,cursor="hand2",command=del_task)
    de_bu.place(x=75,y=345,width=75,height=50)
    #save button
    sa_bu=c.Button(win,text="Save",font="ariel 10 bold",bg="spring green",fg="black",bd=3,cursor="hand2",command=save_task)
    sa_bu.place(x=150,y=345,width=75,height=50)
    #Load butoon
    lo_bu=c.Button(win,text="Load task",font="ariel 10 bold",bg="medium orchid",fg="white",bd=3,cursor="hand2",command=load_data)
    lo_bu.place(x=225,y=345,width=74,height=50)
    #####======================================================================
    listbox_tasks=c.Listbox(win,height=17,width=80)
    listbox_tasks.pack()
    #=====================================================================
    c.mainloop()

    • @TokyoEdTech
      @TokyoEdTech  Год назад

      WOW - that looks awesome!
      One suggestion - you might not want to use place - on my computer I couldn't see part of the UI.