{"id":17280181,"url":"https://github.com/akuli/tkinter-tutorial","last_synced_at":"2025-04-14T09:40:40.468Z","repository":{"id":46620619,"uuid":"88194878","full_name":"Akuli/tkinter-tutorial","owner":"Akuli","description":"Tkinter tutorial for beginners.","archived":false,"fork":false,"pushed_at":"2021-10-03T15:45:19.000Z","size":110,"stargazers_count":123,"open_issues_count":4,"forks_count":25,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-27T22:51:15.335Z","etag":null,"topics":["beginner","beginner-friendly","gui","guide","tkinter","tutorial"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Akuli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-13T18:31:12.000Z","updated_at":"2025-03-07T20:38:56.000Z","dependencies_parsed_at":"2022-07-25T22:33:03.221Z","dependency_job_id":null,"html_url":"https://github.com/Akuli/tkinter-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akuli%2Ftkinter-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akuli%2Ftkinter-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akuli%2Ftkinter-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akuli%2Ftkinter-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Akuli","download_url":"https://codeload.github.com/Akuli/tkinter-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248855578,"owners_count":21172600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beginner","beginner-friendly","gui","guide","tkinter","tutorial"],"created_at":"2024-10-15T09:19:39.217Z","updated_at":"2025-04-14T09:40:40.431Z","avatar_url":"https://github.com/Akuli.png","language":"Python","readme":"# Tkinter Tutorial for Beginners\n\nWhen I was getting started with Python I loved writing Tkinter GUIs. At\nfirst they felt really complicated because the tutorial I was following\nwasn't very good. Even the hello world example had a class with\ninheritance, and I didn't know what was a class at the time.\n\nThis tutorial consists of minimal examples and explains common mistakes.\nYou don't need to have any experience in GUI programming to read this\ntutorial, and you don't even need to know what is a GUI. All you need is\n[basic Python\nskills](https://github.com/Akuli/python-tutorial/tree/master/basics#basics).\n\n**If you need help**, you're not alone! [Click\nhere](https://kiwiirc.com/client/chat.freenode.net/##learnpython) to go\nto a free Python help chat. If you see Akuli in the user list, that's me.\n\n## Which GUI toolkit?\n\nGUI is short for Graphical User Interface. It means a program that we\ncan use without a command prompt or a terminal, like a web browser, a\nfile manager or an editor.\n\nTkinter is an easy way to write GUIs in Python. Unlike bigger GUI\ntoolkits like Qt and GTK+, tkinter comes with Python so many Python\nusers have it already. Tkinter works on Windows, Mac OSX and Linux, so\nit's a good choice for writing cross-platform programs. For example, I\nhave written [Porcupine](https://github.com/Akuli/porcupine) using\ntkinter.\n\nTkinter is not a good choice if you want to write programs mainly for\nLinux users. Most Linux distributions don't come with tkinter and\ntkinter applications look different than Qt and GTK+ applications on\nLinux. On the other hand, many Linux distributions come with\n[GTK+](https://python-gtk-3-tutorial.readthedocs.io/en/latest/), so I\nrecommend using that if you want to write programs for Linux users.\n\nYou can also use [PyQt](http://zetcode.com/gui/pyqt5/) if you want to\nwrite cross-platform GUI programs. It doesn't come with Python and\ninstalling it can be difficult, but PyQt programs look good on Windows,\nMac and Linux.\n\nTkinter is light, but it's also limited in some ways. For example, you\ncan't write a web browser in tkinter, but it's possible to write web\nbrowsers in GTK+ and PyQt. Simpler things like text editors and music\nplayers can be written in tkinter.\n\n## List of contents\n\n1. [Getting Started](getting-started.md)\n2. [Buttons](buttons.md)\n3. [Geometry Managers](geometry-managers.md)\n4. [Dialogs](dialogs.md)\n5. There will be more stuff here later...\n6. [Event Loop and Threads](event-loop-stuff.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakuli%2Ftkinter-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakuli%2Ftkinter-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakuli%2Ftkinter-tutorial/lists"}