{"id":29703269,"url":"https://github.com/velyzo/bettertkinter","last_synced_at":"2026-05-19T06:01:34.431Z","repository":{"id":260951823,"uuid":"882816906","full_name":"Velyzo/BetterTkinter","owner":"Velyzo","description":"An enhanced tkinter package with custom-styled widgets","archived":false,"fork":false,"pushed_at":"2025-06-27T21:39:36.000Z","size":61,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-27T22:34:11.870Z","etag":null,"topics":["bettertkinter","fancy","gui","python","tkinter","ui","velis","wfxey"],"latest_commit_sha":null,"homepage":"https://discord.gg/CFujE7USpt","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/Velyzo.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-03T20:43:15.000Z","updated_at":"2025-06-27T21:39:40.000Z","dependencies_parsed_at":"2024-12-11T22:38:43.331Z","dependency_job_id":null,"html_url":"https://github.com/Velyzo/BetterTkinter","commit_stats":null,"previous_names":["d-i-projects/bettertkinter","eldritchy/bettertkinter","veliscore/bettertkinter","velyzo/bettertkinter"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/Velyzo/BetterTkinter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Velyzo%2FBetterTkinter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Velyzo%2FBetterTkinter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Velyzo%2FBetterTkinter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Velyzo%2FBetterTkinter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Velyzo","download_url":"https://codeload.github.com/Velyzo/BetterTkinter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Velyzo%2FBetterTkinter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266689698,"owners_count":23969143,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bettertkinter","fancy","gui","python","tkinter","ui","velis","wfxey"],"created_at":"2025-07-23T13:38:24.688Z","updated_at":"2026-05-19T06:01:34.425Z","avatar_url":"https://github.com/Velyzo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BetterTkinter\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.7+-blue?style=for-the-badge\u0026logo=python\" alt=\"Python\"\u003e\n  \u003cimg src=\"https://img.shields.io/pypi/v/bettertkinter?style=for-the-badge\u0026logo=pypi\u0026logoColor=white\" alt=\"PyPI\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/stars/Velyzo/BetterTkinter?style=for-the-badge\u0026logo=github\" alt=\"Stars\"\u003e\n  \u003cimg src=\"https://img.shields.io/pypi/dm/bettertkinter?style=for-the-badge\u0026logo=pypi\u0026logoColor=white\" alt=\"Downloads\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-MIT-green?style=for-the-badge\" alt=\"License\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e🎨 A modern, beautiful, and feature-rich Tkinter UI framework for Python\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Transform your Python desktop applications with stunning modern interfaces, advanced widgets, and effortless theming.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[📚 **Documentation**](https://velyzo.github.io/BetterTkinterDocs/) • [🎮 **Live Demo**](demo/) • [🚀 **Get Started**](#-quick-start) • [💡 **Examples**](#-examples--demos)\n\n\u003c/div\u003e\n\n---\n\n## ✨ **Why BetterTkinter?**\n\n**BetterTkinter** revolutionizes Python GUI development by providing a modern, intuitive framework built on Tkinter's solid foundation. Create professional-grade desktop applications with minimal code and maximum visual impact.\n\n### 🎯 **Key Highlights**\n\n| 🌟 **Feature** | 🎨 **Description** |\n|---------------|------------------|\n| **Modern Design** | Beautiful, contemporary widgets that look native on all platforms |\n| **Smart Theming** | Light/Dark/Auto themes with customizable color schemes |\n| **Advanced Widgets** | Color pickers, dialogs, navigation bars, progress bars, and more |\n| **Developer Friendly** | Intuitive API, comprehensive documentation, rich examples |\n| **Production Ready** | Robust, tested, and used in real-world applications |\n| **Cross Platform** | Windows, macOS, and Linux support out of the box |\n\n---\n\n## 📦 **Installation**\n\n### Quick Install\n```bash\npip install bettertkinter\n```\n\n### Development Install\n```bash\ngit clone https://github.com/Velyzo/BetterTkinter.git\ncd BetterTkinter\npip install -e .\n```\n\n\u003e 💡 **Tip:** Use a virtual environment for better dependency management. See our [Installation Guide](https://velyzo.github.io/BetterTkinterDocs/guides/installation/) for detailed instructions.\n\n---\n\n## 🚀 **Quick Start**\n\nGet up and running in under 2 minutes:\n\n```python\nfrom bettertkinter import BTk, BTkButton, BTkFrame, BTkLabel\n\n# Create a modern window\napp = BTk(title=\"🎨 My Beautiful App\", theme=\"dark\", geometry=\"500x350\")\n\n# Add a stylish frame\nframe = BTkFrame(app, corner_radius=15)\nframe.pack(fill=\"both\", expand=True, padx=20, pady=20)\n\n# Beautiful label\nBTkLabel(frame, text=\"Welcome to BetterTkinter! 🚀\", \n         font_size=18).pack(pady=20)\n\n# Modern buttons with different styles\nBTkButton(frame, text=\"Primary Action\", style=\"primary\").pack(pady=5)\nBTkButton(frame, text=\"Success Action\", style=\"success\").pack(pady=5)\nBTkButton(frame, text=\"Warning Action\", style=\"warning\").pack(pady=5)\n\napp.mainloop()\n```\n\n**That's it!** You now have a beautiful, modern GUI application.\n\n---\n\n## 🎮 **Examples \u0026 Demos**\n\n### 🔥 **Try the Interactive Demo**\nExperience BetterTkinter's full power with our comprehensive demo:\n\n```bash\n# Run the main demo\npython demo.py\n\n# Or explore the demo folder\ncd demo/\npython advanced_demo.py\n```\n\n### 📂 **Demo Directory**\nOur [`demo/`](demo/) folder contains:\n- **Complete Applications** - Full-featured apps showcasing real-world usage\n- **Component Demos** - Individual widget demonstrations\n- **Theme Showcases** - Different styling approaches\n- **Integration Examples** - Working with databases, APIs, and more\n\n### 💡 **Code Examples**\nQuick examples for common tasks:\n\n\u003cdetails\u003e\n\u003csummary\u003e📝 \u003cstrong\u003eForm with Validation\u003c/strong\u003e\u003c/summary\u003e\n\n```python\nfrom bettertkinter import BTk, BTkFrame, BTkLabel, BTkEntry, BTkButton, BTkDialog\n\nclass LoginForm(BTk):\n    def __init__(self):\n        super().__init__(title=\"Login\", geometry=\"400x300\", theme=\"light\")\n        \n        frame = BTkFrame(self)\n        frame.pack(fill=\"both\", expand=True, padx=30, pady=30)\n        \n        BTkLabel(frame, text=\"🔐 Login\", font_size=20).pack(pady=20)\n        \n        self.username = BTkEntry(frame, placeholder_text=\"Username\")\n        self.username.pack(fill=\"x\", pady=10)\n        \n        self.password = BTkEntry(frame, placeholder_text=\"Password\", show=\"*\")\n        self.password.pack(fill=\"x\", pady=10)\n        \n        BTkButton(frame, text=\"Login\", style=\"primary\", \n                 command=self.login).pack(pady=20, fill=\"x\")\n    \n    def login(self):\n        if self.username.get() and self.password.get():\n            BTkDialog.show_success(\"Success\", \"Welcome back!\")\n        else:\n            BTkDialog.show_error(\"Error\", \"Please fill all fields\")\n\nLoginForm().mainloop()\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🎨 \u003cstrong\u003eColor Picker App\u003c/strong\u003e\u003c/summary\u003e\n\n```python\nfrom bettertkinter import BTk, BTkColorPicker, BTkLabel, BTkFrame\n\nclass ColorApp(BTk):\n    def __init__(self):\n        super().__init__(title=\"Color Studio\", geometry=\"600x500\")\n        \n        frame = BTkFrame(self)\n        frame.pack(fill=\"both\", expand=True, padx=20, pady=20)\n        \n        BTkLabel(frame, text=\"🎨 Color Picker Studio\", font_size=18).pack(pady=10)\n        \n        self.color_picker = BTkColorPicker(frame, width=400, height=300)\n        self.color_picker.pack(pady=20)\n        \n        self.color_label = BTkLabel(frame, text=\"Selected: #FF6B35\", font_size=14)\n        self.color_label.pack(pady=10)\n        \n        self.color_picker.bind_color_change(self.on_color_change)\n    \n    def on_color_change(self, color):\n        self.color_label.configure(text=f\"Selected: {color}\")\n\nColorApp().mainloop()\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e📊 \u003cstrong\u003eDashboard Example\u003c/strong\u003e\u003c/summary\u003e\n\n```python\nfrom bettertkinter import BTk, BTkFrame, BTkLabel, BTkProgressBar, BTkNavBar\n\nclass Dashboard(BTk):\n    def __init__(self):\n        super().__init__(title=\"Analytics Dashboard\", geometry=\"800x600\", theme=\"dark\")\n        \n        # Navigation\n        nav = BTkNavBar(self, items=[\"Overview\", \"Analytics\", \"Settings\"])\n        nav.pack(fill=\"x\", padx=10, pady=10)\n        \n        # Content frame\n        content = BTkFrame(self)\n        content.pack(fill=\"both\", expand=True, padx=20, pady=20)\n        \n        # Metrics\n        BTkLabel(content, text=\"📈 Key Metrics\", font_size=16).pack(pady=10)\n        \n        metrics_frame = BTkFrame(content)\n        metrics_frame.pack(fill=\"x\", pady=10)\n        \n        # Progress indicators\n        for metric, value in [(\"Revenue\", 85), (\"Users\", 92), (\"Growth\", 78)]:\n            metric_frame = BTkFrame(metrics_frame)\n            metric_frame.pack(side=\"left\", fill=\"both\", expand=True, padx=5)\n            \n            BTkLabel(metric_frame, text=metric).pack(pady=5)\n            progress = BTkProgressBar(metric_frame)\n            progress.set_value(value)\n            progress.pack(fill=\"x\", padx=10, pady=5)\n            BTkLabel(metric_frame, text=f\"{value}%\").pack()\n\nDashboard().mainloop()\n```\n\u003c/details\u003e\n\n---\n\n## 🧩 **Component Library**\n\nBetterTkinter provides a comprehensive set of modern widgets:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e🪟\u003cbr\u003e\u003cstrong\u003eBTk\u003c/strong\u003e\u003cbr\u003eMain Window\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e🔳\u003cbr\u003e\u003cstrong\u003eBTkButton\u003c/strong\u003e\u003cbr\u003eModern Buttons\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e🖼️\u003cbr\u003e\u003cstrong\u003eBTkFrame\u003c/strong\u003e\u003cbr\u003eContainers\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e🏷️\u003cbr\u003e\u003cstrong\u003eBTkLabel\u003c/strong\u003e\u003cbr\u003eText Display\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e📝\u003cbr\u003e\u003cstrong\u003eBTkEntry\u003c/strong\u003e\u003cbr\u003eInput Fields\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e💬\u003cbr\u003e\u003cstrong\u003eBTkDialog\u003c/strong\u003e\u003cbr\u003eMessage Boxes\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e🎨\u003cbr\u003e\u003cstrong\u003eBTkColorPicker\u003c/strong\u003e\u003cbr\u003eColor Selection\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e☑️\u003cbr\u003e\u003cstrong\u003eBTkCheckBox\u003c/strong\u003e\u003cbr\u003eCheckboxes\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e📊\u003cbr\u003e\u003cstrong\u003eBTkProgressBar\u003c/strong\u003e\u003cbr\u003eProgress Indicators\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e🧭\u003cbr\u003e\u003cstrong\u003eBTkNavBar\u003c/strong\u003e\u003cbr\u003eNavigation\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e🎚️\u003cbr\u003e\u003cstrong\u003eBTkSlider\u003c/strong\u003e\u003cbr\u003eRange Input\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e🖌️\u003cbr\u003e\u003cstrong\u003eBTkCanvas\u003c/strong\u003e\u003cbr\u003eDrawing Surface\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e 📖 **Full Component Reference:** [Component Documentation](https://velyzo.github.io/BetterTkinterDocs/components/)\n\n---\n\n## 📚 **Documentation \u0026 Resources**\n\n### 🌐 **Complete Documentation Website**\n**[📖 velyzo.github.io/BetterTkinterDocs](https://velyzo.github.io/BetterTkinterDocs/)**\n\nOur comprehensive documentation includes:\n- 📘 **Getting Started Guide** - Step-by-step tutorials\n- 🧩 **Component Reference** - Detailed API documentation  \n- 💡 **Examples Collection** - Real-world code samples\n- 🎨 **Theming Guide** - Customization and styling\n- 🚀 **Deployment Guide** - Packaging and distribution\n\n### 📁 **Local Documentation**\n- [`docs/`](docs/) - Complete local documentation\n- [`docs/guides/`](docs/guides/) - Installation, quick start, deployment\n- [`docs/components/`](docs/components/) - Individual component docs\n- [`docs/examples/`](docs/examples/) - Code examples and tutorials\n- [`docs/api/`](docs/api/) - Full API reference\n\n---\n\n## 🤝 **Community \u0026 Support**\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub Discussions](https://img.shields.io/badge/GitHub-Discussions-blue?style=for-the-badge\u0026logo=github)](https://github.com/Velyzo/BetterTkinter/discussions)\n[![Issues](https://img.shields.io/badge/Report-Issues-red?style=for-the-badge\u0026logo=github)](https://github.com/Velyzo/BetterTkinter/issues)\n[![Documentation](https://img.shields.io/badge/Read-Docs-green?style=for-the-badge\u0026logo=readthedocs)](https://velyzo.github.io/BetterTkinterDocs/)\n\n\u003c/div\u003e\n\n### 💪 **Contributing**\nWe welcome contributions! Here's how you can help:\n\n- 🐛 **Report bugs** and request features\n- 📝 **Improve documentation** and examples  \n- 🔧 **Submit pull requests** with enhancements\n- 💬 **Help others** in discussions\n- ⭐ **Star the repository** to show your support\n\nSee our [Contributing Guide](docs/CONTRIBUTING.md) for detailed guidelines.\n\n---\n\n## 🏆 **Showcase**\n\n**BetterTkinter** powers a variety of applications:\n- 🖥️ **Desktop Applications** - Business tools, utilities, games\n- 🔧 **Development Tools** - IDEs, file managers, system monitors  \n- 🎨 **Creative Software** - Image editors, drawing apps, design tools\n- 📊 **Data Applications** - Dashboards, analytics, visualization tools\n\n\u003e 📸 **Share Your Creation:** Built something amazing? [Share it with us](https://github.com/Velyzo/BetterTkinter/discussions)!\n\n---\n\n## 📜 **License**\n\nBetterTkinter is released under the **MIT License**. See [`LICENSE`](LICENSE) for details.\n\n```\nMIT License - Feel free to use BetterTkinter in personal and commercial projects!\n```\n\n---\n\n## ⭐ **Star History**\n\n\u003cdiv align=\"center\"\u003e\n  \n[![Star History Chart](https://api.star-history.com/svg?repos=Velyzo/BetterTkinter\u0026type=Date)](https://star-history.com/#Velyzo/BetterTkinter\u0026Date)\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### 🚀 **Ready to Build Something Amazing?**\n\n**[📖 Read the Docs](https://velyzo.github.io/BetterTkinterDocs/)** • **[🎮 Try the Demo](demo.py)** • **[⭐ Star the Repo](https://github.com/Velyzo/BetterTkinter)**\n\n\u003cbr\u003e\n\n**Made with ❤️ by the BetterTkinter Team**\n\n[![Follow on GitHub](https://img.shields.io/github/followers/Velyzo?style=social)](https://github.com/Velyzo)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvelyzo%2Fbettertkinter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvelyzo%2Fbettertkinter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvelyzo%2Fbettertkinter/lists"}