{"id":23711045,"url":"https://github.com/natorsc/py-gtk","last_synced_at":"2025-04-06T08:14:23.885Z","repository":{"id":40617248,"uuid":"258844908","full_name":"natorsc/py-gtk","owner":"natorsc","description":"Repository created to centralize tips, tutorials and code examples on building graphical interfaces with the Python programming language (PyGObject) and the GTK graphics tookit.","archived":false,"fork":false,"pushed_at":"2025-03-04T21:03:43.000Z","size":3961,"stargazers_count":112,"open_issues_count":1,"forks_count":10,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-30T07:09:05.080Z","etag":null,"topics":["furo","gnome","gtk","gtk3","gtk4","pygobject","python","python-3","python3","sphinx","sphinx-doc"],"latest_commit_sha":null,"homepage":"https://justcode.com.br/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/natorsc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"natorsc"}},"created_at":"2020-04-25T18:23:07.000Z","updated_at":"2025-03-04T21:03:48.000Z","dependencies_parsed_at":"2023-10-14T20:59:56.553Z","dependency_job_id":"691266c0-d819-4d0a-9a4e-f22f263c7af6","html_url":"https://github.com/natorsc/py-gtk","commit_stats":{"total_commits":18,"total_committers":1,"mean_commits":18.0,"dds":0.0,"last_synced_commit":"977c38d6d3c5937da8884a00d647cfc07346f899"},"previous_names":["natorsc/python-gtk-pygobject","natorsc/py-gtk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natorsc%2Fpy-gtk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natorsc%2Fpy-gtk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natorsc%2Fpy-gtk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natorsc%2Fpy-gtk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/natorsc","download_url":"https://codeload.github.com/natorsc/py-gtk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451667,"owners_count":20940944,"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":["furo","gnome","gtk","gtk3","gtk4","pygobject","python","python-3","python3","sphinx","sphinx-doc"],"created_at":"2024-12-30T19:33:34.763Z","updated_at":"2025-04-06T08:14:23.864Z","avatar_url":"https://github.com/natorsc.png","language":"Python","funding_links":["https://github.com/sponsors/natorsc","https://github.com/sponsors/natorsc/"],"categories":[],"sub_categories":[],"readme":"![Creating graphical interfaces with Python (PyGObject) and GTK](./docs/images/py-gtk.webp \"Creating graphical interfaces with Python (PyGObject) and GTK\")\r\n\r\n\u003cbr\u003e\r\n\r\n[![natorsc - py-gtk](https://img.shields.io/static/v1?label=natorsc\u0026message=py-gtk\u0026color=blue\u0026logo=github)](https://github.com/natorsc/py-gtk \"Go to repository.\")\r\n\u0026emsp;\r\n[![stars - py-gtk](https://img.shields.io/github/stars/natorsc/py-gtk?style=social)](https://github.com/natorsc/py-gtk)\r\n\u0026emsp;\r\n[![forks - py-gtk](https://img.shields.io/github/forks/natorsc/py-gtk?style=social)](https://github.com/natorsc/py-gtk)\r\n\r\n[![License MIT](https://img.shields.io/static/v1?label=License\u0026message=MIT\u0026color=blue)](./LICENSE)\r\n\r\n# Creating graphical interfaces with Python (PyGObject) and GTK\r\n\r\n## 📝 Description\r\n\r\nThis repository is your go-to hub for tips, tutorials, and code examples on building stunning graphical interfaces with Python (PyGObject) and the GTK toolkit. Whether you're a beginner or an experienced developer, you'll find valuable resources to enhance your projects. If this content helps you, consider supporting the project with a donation to keep it growing!\r\n\r\n---\r\n\r\n## 🛠 Technologies used\r\n\r\nTo date, the following technologies have been used to build the project:\r\n\r\n[![Python](https://img.shields.io/badge/-Python-blue?logo=python\u0026logoColor=white)](https://www.python.org/ \"Go to the site.\")\r\n\u0026emsp;\r\n[![GTK](https://img.shields.io/badge/-GTK-blue?logo=gtk\u0026logoColor=white)](https://www.gtk.org/ \"Go to the site.\")\r\n\u0026emsp;\r\n[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)\r\n\r\n---\r\n\r\n## 🤓 Author\r\n\r\nCrafted with 💙 by Renato Cruz 🤜🤛 Got questions or feedback? Feel free to reach out!\r\n\r\n[![Email](https://img.shields.io/badge/-Email-blueviolet?logo=gmail\u0026logoColor=white)](mailto:natorsc@gmail.com \"Send an email.\")\r\n\r\nWhat I’m listening to while deep in study or code mode 😎🎵:\r\n\r\n[![Spotify](https://img.shields.io/badge/-Spotify-darkgreen?logo=spotify\u0026logoColor=white)](https://open.spotify.com/playlist/1xf3u29puXlnrWO7MsaHL5?si=A-LgwRJXSvOno_e6trpi5w\u0026utm_source=copy-link \"Access the playlist.\")\r\n\r\n---\r\n\r\n## 💝 Donations\r\n\r\nThank you for your donation! Your support helps me keep this content alive and growing 😊.\r\n\r\n### Github\r\n\r\nhttps://github.com/sponsors/natorsc/\r\n\r\n\r\n### Pix (Brazil)\r\n\r\n**Chave**: `b1839493-2afe-484d-9272-82a3e402b36f`\r\n\r\n---\r\n\r\n## 💡 Extra\r\n\r\n### GTK\r\n\r\n- [Documentation GTK 3](https://docs.gtk.org/gtk3/).\r\n- [Documentation GTK 4](https://docs.gtk.org/gtk4/).\r\n\r\n### Libadwaita\r\n\r\n- [Documentation 1.x](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/).\r\n\r\n### GNOME\r\n\r\n- [Official website](https://www.gnome.org/).\r\n- [Blog](https://blogs.gnome.org/).\r\n- [GNOME Human Interface Guidelines (HIG)](https://wiki.gnome.org/Design/HIG).\r\n\r\n### Development\r\n\r\n- [GNOME Builder](https://apps.gnome.org/pt-BR/app/org.gnome.Builder/).\r\n- [Workbench](https://apps.gnome.org/pt-BR/app/re.sonny.Workbench/).\r\n- [Cambalache](https://flathub.org/pt-BR/apps/ar.xjuan.Cambalache).\r\n- [Icon Library](https://flathub.org/apps/details/org.gnome.design.IconLibrary).\r\n- [Typography](https://flathub.org/apps/details/org.gnome.design.Typography).\r\n- [App Icon Preview](https://flathub.org/apps/details/org.gnome.design.AppIconPreview).\r\n- [Symbolic Preview](https://flathub.org/apps/details/org.gnome.design.SymbolicPreview).\r\n- [Color Palette](https://flathub.org/apps/details/org.gnome.design.Palette).\r\n- [Gnome icon library online](https://teams.pages.gitlab.gnome.org/Design/icon-development-kit-www/).\r\n\r\n### Softwares\r\n\r\n- [GNOME Apps](https://apps.gnome.org/pt-BR/).\r\n- [GNOME circle](https://circle.gnome.org/).\r\n- [Awesome GTK](https://github.com/valpackett/awesome-gtk).\r\n\r\n### Flatpak\r\n\r\n- [Official website](https://www.flatpak.org/).\r\n- [Flathub](https://flathub.org/).\r\n\r\n### Visual Studio Code\r\n\r\n- [Gnome Magic (bedsteler20)](https://marketplace.visualstudio.com/items?itemName=bedsteler20.gnome-magic).\r\n- [GTK Blueprint (Bodil Stokke)](https://marketplace.visualstudio.com/items?itemName=bodil.blueprint-gtk).\r\n- [Flatpak (Bilal Elmoussaoui)](https://marketplace.visualstudio.com/items?itemName=bilelmoussaoui.flatpak-vscode).\r\n\r\n---\r\n\r\n## Widgets\r\n\r\n### GTK\r\n\r\n#### Gtk.ActionBar\r\n\r\n![Gtk.ActionBar](./docs/images/gtk-widgets/actionbar.webp \"Gtk.ActionBar\")\r\n\r\n- [Python](./src/gtk-widgets/actionbar/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/actionbar/ui/MainWindow.blp).\r\n\r\n---\r\n\r\n#### Gtk.Application\r\n\r\n![Gtk.Application](./docs/images/gtk-widgets/application.webp \"Gtk.Application\")\r\n\r\n- [Python](./src/gtk-widgets/application/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/application/ui).\r\n\r\n---\r\n\r\n#### Gtk.ApplicationWindow\r\n\r\n![Gtk.ApplicationWindow](./docs/images/gtk-widgets/application-window.webp \"Gtk.ApplicationWindow\")\r\n\r\n- [Python](./src/gtk-widgets/application-window/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/application-window/ui).\r\n\r\n---\r\n\r\n#### Gtk.Box (horizontal)\r\n\r\n![Gtk.Box (horizontal)](./docs/images/gtk-widgets/box-horizontal.webp \"Gtk.Box (horizontal)\")\r\n\r\n- [Python](./src/gtk-widgets/box-horizontal/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/box-horizontal/ui).\r\n\r\n---\r\n\r\n#### Gtk.Box (vertical)\r\n\r\n![Gtk.Box (vertical)](./docs/images/gtk-widgets/box-vertical.webp \"Gtk.Box (vertical)\")\r\n\r\n- [Python](./src/gtk-widgets/box-vertical/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/box-vertical/ui).\r\n\r\n---\r\n\r\n#### Gtk.Button\r\n\r\n![Gtk.Button](./docs/images/gtk-widgets/button.webp \"Gtk.Button\")\r\n\r\n- [Python](./src/gtk-widgets/button/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/button/ui).\r\n\r\n---\r\n\r\n#### Gtk.Calendar\r\n\r\n![Gtk.Calendar](./docs/images/gtk-widgets/calendar.webp \"Gtk.Calendar\")\r\n\r\n- [Python](./src/gtk-widgets/calendar/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/calendar/ui).\r\n\r\n---\r\n\r\n#### Gtk.CheckButton\r\n\r\n![Gtk.CheckButton](./docs/images/gtk-widgets/check-button.webp \"Gtk.CheckButton\")\r\n\r\n- [Python](./src/gtk-widgets/check-button/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/check-button/ui).\r\n\r\n---\r\n\r\n#### Gtk.CheckButton (radio)\r\n\r\n![Gtk.CheckButton (radio)](./docs/images/gtk-widgets/check-button-radio.webp \"Gtk.CheckButton (radio)\")\r\n\r\n- [Python](./src/gtk-widgets/check-button-radio/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/check-button-radio/ui).\r\n\r\n---\r\n\r\n#### Gtk.ColorDialogButton\r\n\r\n![Gtk.ColorDialogButton](./docs/images/gtk-widgets/color-dialog-button.webp \"Gtk.ColorDialogButton\")\r\n\r\n- [Python](./src/gtk-widgets/color-dialog-button/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/color-dialog-button/ui).\r\n\r\n---\r\n\r\n#### Drag and drop\r\n\r\n![Gtk.Drag and drop](./docs/images/gtk-widgets/drag-and-drop.webp \"Gtk.Drag and drop\")\r\n\r\n- [Python](./src/gtk-widgets/drag-and-drop/MainWindow.py).\r\n\r\n---\r\n\r\n#### Gtk.DropDown\r\n\r\n![Gtk.DropDown](./docs/images/gtk-widgets/drop-down.webp \"Gtk.DropDown\")\r\n\r\n- [Python](./src/gtk-widgets/drop-down/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/drop-down/ui).\r\n\r\n---\r\n\r\n#### Gtk.Entry\r\n\r\n![Gtk.Entry](./docs/images/gtk-widgets/entry.webp \"Gtk.Entry\")\r\n\r\n- [Python](./src/gtk-widgets/entry/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/entry/ui).\r\n\r\n---\r\n\r\n#### Gtk.FileDialog (folder)\r\n\r\n![Gtk.FileDialog (folder)](./docs/images/gtk-widgets/file-dialog-folder.webp \"Gtk.FileDialog (folder)\")\r\n\r\n- [Python](./src/gtk-widgets/file-dialog-folder/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/file-dialog-folder/ui).\r\n\r\n---\r\n\r\n#### Gtk.FileDialog (open)\r\n\r\n![Gtk.FileDialog (open)](./docs/images/gtk-widgets/file-dialog-open.webp \"Gtk.FileDialog (open)\")\r\n\r\n- [Python](/src/gtk-widgets/file-dialog-open/MainWindow.py).\r\n- [GTK Blueprint](/src/gtk-widgets/file-dialog-open/ui).\r\n\r\n---\r\n\r\n#### Gtk.FileDialog (save)\r\n\r\n![Gtk.FileDialog (save)](./docs/images/gtk-widgets/file-dialog-save.webp \"Gtk.FileDialog (save)\")\r\n\r\n- [Python](./src/gtk-widgets/file-dialog-save/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/file-dialog-save/ui).\r\n\r\n---\r\n\r\n#### Gtk.Fixed\r\n\r\n![Gtk.Fixed](./docs/images/gtk-widgets/fixed.webp \"Gtk.Fixed\")\r\n\r\n- [Python](./src/gtk-widgets/fixed/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/fixed/ui).\r\n\r\n---\r\n\r\n#### Gtk.FlowBox\r\n\r\n![Gtk.FlowBox](./docs/images/gtk-widgets/flow-box.webp \"Gtk.FlowBox\")\r\n\r\n- [Python](./src/gtk-widgets/flow-box/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/flow-box/ui).\r\n\r\n---\r\n\r\n#### Gtk.Grid\r\n\r\n![Gtk.Grid](./docs/images/gtk-widgets/grid.webp \"Gtk.Grid\")\r\n\r\n- [Python](./src/gtk-widgets/grid/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/grid/ui).\r\n\r\n---\r\n\r\n#### Gtk.HeaderBar\r\n\r\n![Gtk.ApplicatHeaderBarion](./docs/images/gtk-widgets/header-bar.webp \"Gtk.HeaderBar\")\r\n\r\n- [Python](./src/gtk-widgets/header-bar/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/header-bar/ui).\r\n\r\n---\r\n\r\n#### Gtk.Image\r\n\r\n![Gtk.Image](./docs/images/gtk-widgets/image.webp \"Gtk.Image\")\r\n\r\n- [Python](./src/gtk-widgets/image/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/image/ui).\r\n\r\n---\r\n\r\n#### Gtk.ListBox\r\n\r\n![Gtk.ListBox](./docs/images/gtk-widgets/list-box.webp \"Gtk.ListBox\")\r\n\r\n- [Python](./src/gtk-widgets/list-box/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/list-box/ui).\r\n\r\n---\r\n\r\n#### Gtk.ListView\r\n\r\n![Gtk.ListView](./docs/images/gtk-widgets/list-view.webp \"Gtk.ListView\")\r\n\r\n\u003e 🚨 Criar código Python.\r\n\r\n- [Python](#gtklistview).\r\n- [GTK Blueprint](./src/gtk-widgets/list-view/ui).\r\n\r\n---\r\n\r\n#### Gtk.MenuButton\r\n\r\n![Gtk.MenuButton](./docs/images/gtk-widgets/menu-button.webp \"Gtk.MenuButton\")\r\n\r\n- [Python](./src/gtk-widgets/menu-button/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/menu-button/ui).\r\n\r\n---\r\n\r\n#### Gtk.Overlay\r\n\r\n![Gtk.Overlay](./docs/images/gtk-widgets/overlay.webp \"Gtk.Overlay\")\r\n\r\n- [Python](./src/gtk-widgets/overlay/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/overlay/ui).\r\n\r\n---\r\n\r\nPango tags\r\n==========\r\n\r\n![Gtk.Pango tags](./docs/images/gtk-widgets/pango-tags.webp \"Gtk.Pango tags\")\r\n\r\n- [Python](./src/gtk-widgets/pango-tags/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/pango-tags/ui).\r\n\r\n---\r\n\r\n#### Gtk.Picture\r\n\r\n![Gtk.Picture](./docs/images/gtk-widgets/picture.webp \"Gtk.Picture\")\r\n\r\n- [Python](./src/gtk-widgets/picture/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/picture/ui).\r\n\r\n---\r\n\r\n#### Gtk.PrintOperation\r\n\r\n![Gtk.PrintOperation](./docs/images/gtk-widgets/print-operation.webp \"Gtk.PrintOperation\")\r\n\r\n- [Python](./src/gtk-widgets/print-operation/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/print-operation/ui).\r\n\r\n---\r\n\r\n#### Gtk.SearchBar\r\n\r\n![Gtk.SearchBar](./docs/images/gtk-widgets/search-bar.webp \"Gtk.SearchBar\")\r\n\r\n- [Python](./src/gtk-widgets/search-bar/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/search-bar/ui).\r\n\r\n---\r\n\r\n#### Gtk.ShortcutsWindow\r\n\r\n![Gtk.ShortcutsWindow](./docs/images/gtk-widgets/shortcuts-window.webp \"Gtk.ShortcutsWindow\")\r\n\r\n\u003e 🚨 Criar código Python.\r\n\r\n- [GTK Blueprint](./src/gtk-widgets/shortcuts-window/ui).\r\n\r\n---\r\n\r\n#### Signals and slots\r\n\r\n![Signals and slots](./docs/images/gtk-widgets/signals-and-slots.webp \"Signals and slots\")\r\n\r\n- [Python](./src/gtk-widgets/signals-and-slots/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/signals-and-slots/ui).\r\n\r\n---\r\n\r\n#### Gtk.StackSidebar\r\n\r\n![Gtk.StackSidebar](./docs/images/gtk-widgets/stack-sidebar.webp \"Gtk.StackSidebar\")\r\n\r\n- [Python](./src/gtk-widgets/stack-sidebar/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/stack-sidebar/ui).\r\n\r\n---\r\n\r\n#### Gtk.StackSwitcher\r\n\r\n![Gtk.StackSwitcher](./docs/images/gtk-widgets/stack-switcher.webp \"Gtk.StackSwitcher\")\r\n\r\n- [Python](./src/gtk-widgets/stack-switcher/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/stack-switcher/ui).\r\n\r\n---\r\n\r\n#### Gtk.Switch\r\n\r\n![Gtk.Switch](./docs/images/gtk-widgets/switch.webp \"Gtk.Switch\")\r\n\r\n- [Python](./src/gtk-widgets/switch/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/switch/ui).\r\n\r\n---\r\n\r\n#### Translation (gettext)\r\n\r\n![Gtk.Translation (gettext)](./docs/images/gtk-widgets/ \"Gtk.Translation (gettext)\")\r\n\r\n\u003e 🚨 Revisar.\r\n\r\n- [Python](./src/gtk-widgets/translator-gettext/MainWindow.py).\r\n\r\n---\r\n\r\n#### Gtk.Video\r\n\r\n![Gtk.Video](./docs/images/gtk-widgets/video.webp \"Gtk.Video\")\r\n\r\n- [Python](./src/gtk-widgets/video/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/video/ui).\r\n\r\n---\r\n\r\n#### Gtk.Window\r\n\r\n![Gtk.Window](./docs/images/gtk-widgets/window.webp \"Gtk.Window\")\r\n\r\n- [Python](./src/gtk-widgets/window/MainWindow.py).\r\n- [GTK Blueprint](./src/gtk-widgets/window/ui).\r\n\r\n---\r\n\r\n\u003cbr\u003e\r\n\r\n### Libadwaita\r\n\r\n#### Adw.AboutDialog\r\n\r\n![Adw.AboutDialog](./docs/images/libadwaita-widgets/about-dialog.png \"Adw.AboutDialog\")\r\n\r\n- [Python](./src/libadwaita-widgets/about-dialog/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/about-dialog/ui).\r\n\r\n---\r\n\r\n#### Adw.ActionRow\r\n\r\n![Adw.ActionRow](./docs/images/libadwaita-widgets/action-row.webp \"Adw.ActionRow\")\r\n\r\n- [Python](./src/libadwaita-widgets/action-row/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/action-row/ui).\r\n\r\n---\r\n\r\n#### Adw.Application\r\n\r\n![Adw.Application](./docs/images/libadwaita-widgets/application.webp \"Adw.Application\")\r\n\r\n- [Python](./src/libadwaita-widgets/application/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/application/ui).\r\n\r\n---\r\n\r\n#### Adw.Avatar\r\n\r\n![Adw.Avatar](./docs/images/libadwaita-widgets/avatar.webp \"Adw.Avatar\")\r\n\r\n- [Python](./src/libadwaita-widgets/avatar/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/avatar/ui).\r\n\r\n---\r\n\r\n#### Adw.Banner\r\n\r\n![Adw.Banner](./docs/images/libadwaita-widgets/banner.webp \"Adw.Banner\")\r\n\r\n- [Python](./src/libadwaita-widgets/banner/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/banner/ui).\r\n\r\n---\r\n\r\n#### Adw.ButtonContent\r\n\r\n![Adw.ButtonContent](./docs/images/libadwaita-widgets/button-content.webp \"Adw.ButtonContent\")\r\n\r\n- [Python](./src/libadwaita-widgets/button-content/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/button-content/ui).\r\n\r\n---\r\n\r\n#### Adw.Carousel\r\n\r\n![Adw.Carousel](./docs/images/libadwaita-widgets/carousel.webp \"Adw.Carousel\")\r\n\r\n- [Python](./src/libadwaita-widgets/carousel/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/carousel/ui).\r\n\r\n---\r\n\r\n#### Adw.CarouselIndicatorDots\r\n\r\n![Adw.CarouselIndicatorDots](./docs/images/libadwaita-widgets/carousel-indicator-dots.webp \"Adw.CarouselIndicatorDots\")\r\n\r\n- [Python](./src/libadwaita-widgets/carousel-indicator-dots/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/carousel-indicator-dots/ui).\r\n\r\n---\r\n\r\n#### Adw.CarouselIndicatorLines\r\n\r\n![Adw.CarouselIndicatorLines](./docs/images/libadwaita-widgets/carousel-indicator-lines.webp \"Adw.CarouselIndicatorLines\")\r\n\r\n- [Python](./src/libadwaita-widgets/carousel-indicator-lines/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/carousel-indicator-lines/ui).\r\n\r\n---\r\n\r\n#### Adw.Clamp\r\n\r\n![Adw.Clamp](./docs/images/libadwaita-widgets/clamp.webp \"Adw.Clamp\")\r\n\r\n- [Python](./src/libadwaita-widgets/clamp/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/clamp/ui).\r\n\r\n---\r\n\r\n#### Adw.ComboRow\r\n\r\n![Adw.ComboRow](./docs/images/libadwaita-widgets/combo-row.webp \"Adw.ComboRow\")\r\n\r\n- [Python](./src/libadwaita-widgets/combo-row/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/combo-row/ui).\r\n\r\n---\r\n\r\n#### Adw.EntryRow\r\n\r\n![Adw.EntryRow](./docs/images/libadwaita-widgets/entry-row.webp \"Adw.EntryRow\")\r\n\r\n- [Python](./src/libadwaita-widgets/entry-row/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/entry-row/ui).\r\n\r\n---\r\n\r\n#### Adw.ExpanderRow\r\n\r\n![Adw.ExpanderRow](./docs/images/libadwaita-widgets/expander-row.webp \"Adw.ExpanderRow\")\r\n\r\n- [Python](./src/libadwaita-widgets/expander-row/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/expander-row/ui).\r\n\r\n---\r\n\r\n#### Adw.MessageDialog\r\n\r\n![Adw.MessageDialog](./docs/images/libadwaita-widgets/message-dialog.webp \"Adw.MessageDialog\")\r\n\r\n- [Python](./src/libadwaita-widgets/message-dialog/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/message-dialog/ui).\r\n\r\n---\r\n\r\n#### Adw.NavigationSplitView\r\n\r\n![Adw.NavigationSplitView](./docs/images/libadwaita-widgets/navigation-split-view.png \"Adw.NavigationSplitView\")\r\n\r\n- [Python](./src/libadwaita-widgets/navigation-split-view/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/navigation-split-view/ui).\r\n\r\n---\r\n\r\n#### Adw.NavigationView\r\n\r\n![Adw.NavigationView](./docs/images/libadwaita-widgets/navigation-view.png \"Adw.NavigationView\")\r\n\r\n- [Python](./src/libadwaita-widgets/navigation-view/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/navigation-view/ui).\r\n\r\n---\r\n\r\n#### Adw.PasswordEntryRow\r\n\r\n![Adw.PasswordEntryRow](./docs/images/libadwaita-widgets/password-entry-row.webp \"Adw.PasswordEntryRow\")\r\n\r\n- [Python](./src/libadwaita-widgets/password-entry-row/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/password-entry-row/ui).\r\n\r\n---\r\n\r\n#### Adw.PreferencesPage\r\n\r\n![Adw.PreferencesPage](./docs/images/libadwaita-widgets/preferences-page.webp \"Adw.PreferencesPage\")\r\n\r\n- [Python](./src/libadwaita-widgets/preferences-page/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/preferences-page/ui).\r\n\r\n---\r\n\r\n#### Adw.PreferencesWindow\r\n\r\n![Adw.PreferencesWindow](./docs/images/libadwaita-widgets/preferences-window.webp \"Adw.PreferencesWindow\")\r\n\r\n- [Python](./src/libadwaita-widgets/preferences-window/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/preferences-window/ui).\r\n\r\n---\r\n\r\n#### Adw.SplitButton\r\n\r\n![Adw.SplitButton](./docs/images/libadwaita-widgets/split-button.webp \"Adw.SplitButton\")\r\n\r\n- [Python](./src/libadwaita-widgets/split-button/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/split-button/ui).\r\n\r\n---\r\n\r\n#### Adw.StatusPage\r\n\r\n![Adw.StatusPage](./docs/images/libadwaita-widgets/status-page.webp \"Adw.StatusPage\")\r\n\r\n- [Python](./src/libadwaita-widgets/status-page/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/status-page/ui).\r\n\r\n--\r\n\r\n#### Adw.Toast\r\n\r\n![Adw.Toast](./docs/images/libadwaita-widgets/toast.webp \"Adw.Toast\")\r\n\r\n- [Python](./src/libadwaita-widgets/toast/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/toast/ui).\r\n\r\n---\r\n\r\n#### Adw.ToolbarView\r\n\r\n\u003e Todo: GTK Blueprint.\r\n\r\n![Adw.ToolbarView](./docs/images/libadwaita-widgets/toolbar-view.webp \"Adw.ToolbarView\")\r\n\r\n- [Python](./src/libadwaita-widgets/toolbar-view/MainWindow.py).\r\n\r\n---\r\n\r\n#### Adw.ViewStack\r\n\r\n![Adw.ViewStack](./docs/images/libadwaita-widgets/view-stack.png \"Adw.ViewStack\")\r\n\r\n- [Python](./src/libadwaita-widgets/view-stack/MainWindow.py).\r\n- [GTK Blueprint](./src/libadwaita-widgets/view-stack/ui).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatorsc%2Fpy-gtk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnatorsc%2Fpy-gtk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatorsc%2Fpy-gtk/lists"}