{"id":24600855,"url":"https://github.com/xiaokang2022/maliang","last_synced_at":"2025-12-16T12:42:13.092Z","repository":{"id":170154764,"uuid":"646271519","full_name":"Xiaokang2022/maliang","owner":"Xiaokang2022","description":"A lightweight UI framework based on tkinter with all UI drawn in Canvas!","archived":false,"fork":false,"pushed_at":"2025-04-01T06:31:18.000Z","size":96904,"stargazers_count":853,"open_issues_count":18,"forks_count":40,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-06T06:01:35.309Z","etag":null,"topics":["canvas","cross-platform","custom","gui","lightweight","modern-ui","python","themed","tk","tkinter","typed","ui","ui-design","widget"],"latest_commit_sha":null,"homepage":"https://xiaokang2022.github.io/maliang/","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/Xiaokang2022.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"custom":"https://xiaokang2022.github.io/maliang/Sponsor/"}},"created_at":"2023-05-27T20:54:24.000Z","updated_at":"2025-04-05T16:24:22.000Z","dependencies_parsed_at":"2024-05-15T18:13:05.675Z","dependency_job_id":"84071cec-d388-4858-adca-cf0860502c05","html_url":"https://github.com/Xiaokang2022/maliang","commit_stats":{"total_commits":534,"total_committers":1,"mean_commits":534.0,"dds":0.0,"last_synced_commit":"b2e92b8e6ffa336eb9842445145da1afb65bc78b"},"previous_names":["xiaokang2022/tkintertools","xiaokang2022/maliang"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xiaokang2022%2Fmaliang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xiaokang2022%2Fmaliang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xiaokang2022%2Fmaliang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xiaokang2022%2Fmaliang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xiaokang2022","download_url":"https://codeload.github.com/Xiaokang2022/maliang/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248695317,"owners_count":21146952,"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":["canvas","cross-platform","custom","gui","lightweight","modern-ui","python","themed","tk","tkinter","typed","ui","ui-design","widget"],"created_at":"2025-01-24T14:03:34.225Z","updated_at":"2025-12-16T12:42:13.049Z","avatar_url":"https://github.com/Xiaokang2022.png","language":"Python","funding_links":["https://xiaokang2022.github.io/maliang/Sponsor/"],"categories":[],"sub_categories":[],"readme":"\u003e [!IMPORTANT]  \n\u003e This project was originally named `tkintertools` and has been renamed to `maliang` after a community [vote](https://github.com/Xiaokang2022/maliang/discussions/41)! 🎉\n\n\u003ch1 align=\"center\"\u003emaliang\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"docs/logo.png\" alt=\"Logo\" title=\"Logo\" /\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eEnglish · \u003ca href=\"README.zh-Hans.md\"\u003e简体中文\u003c/a\u003e · \u003ca href=\"README.zh-Hant.md\"\u003e繁體中文\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ca title=\"Official Website\" href=\"https://xiaokang2022.github.io/maliang/\"\u003ehttps://xiaokang2022.github.io/maliang/\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nA lightweight UI framework based on \u003ccode\u003etkinter\u003c/code\u003e with all UI drawn in \u003ccode\u003eCanvas\u003c/code\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/releases\"\u003e\u003cimg alt=\"Version\" title=\"Version\" src=\"https://img.shields.io/github/v/release/Xiaokang2022/maliang?label=Version\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPQoid2hpdGUiIGQ9Ik0xIDcuNzc1VjIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWg1LjAyNWMuNDY0IDAgLjkxLjE4NCAxLjIzOC41MTNsNi4yNSA2LjI1YTEuNzUgMS43NSAwIDAgMSAwIDIuNDc0bC01LjAyNiA1LjAyNmExLjc1IDEuNzUgMCAwIDEtMi40NzQgMGwtNi4yNS02LjI1QTEuNzUyIDEuNzUyIDAgMCAxIDEgNy43NzVabTEuNSAwYzAgLjA2Ni4wMjYuMTMuMDczLjE3N2w2LjI1IDYuMjVhLjI1LjI1IDAgMCAwIC4zNTQgMGw1LjAyNS01LjAyNWEuMjUuMjUgMCAwIDAgMC0uMzU0bC02LjI1LTYuMjVhLjI1LjI1IDAgMCAwLS4xNzctLjA3M0gyLjc1YS4yNS4yNSAwIDAgMC0uMjUuMjVaTTYgNWExIDEgMCAxIDEgMCAyIDEgMSAwIDAgMSAwLTJaIj48L3BhdGg+PC9zdmc+\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://pypistats.org/packages/maliang\"\u003e\u003cimg alt=\"Downloads\" title=\"Downloads\" src=\"https://img.shields.io/pypi/dm/maliang?label=Downloads\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTIuNzUgMTRBMS43NSAxLjc1IDAgMCAxIDEgMTIuMjV2LTIuNWEuNzUuNzUgMCAwIDEgMS41IDB2Mi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwIDAgLjI1LS4yNXYtMi41YS43NS43NSAwIDAgMSAxLjUgMHYyLjVBMS43NSAxLjc1IDAgMCAxIDEzLjI1IDE0WiI+PC9wYXRoPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNy4yNSA3LjY4OVYyYS43NS43NSAwIDAgMSAxLjUgMHY1LjY4OWwxLjk3LTEuOTY5YS43NDkuNzQ5IDAgMSAxIDEuMDYgMS4wNmwtMy4yNSAzLjI1YS43NDkuNzQ5IDAgMCAxLTEuMDYgMEw0LjIyIDYuNzhhLjc0OS43NDkgMCAxIDEgMS4wNi0xLjA2bDEuOTcgMS45NjlaIj48L3BhdGg+PC9zdmc+\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/actions\"\u003e\u003cimg alt=\"Lint \u0026 Test\" title=\"Lint \u0026 Test\" src=\"https://img.shields.io/github/actions/workflow/status/Xiaokang2022/maliang/python-package.yml?label=Lint%20%26%20Test\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTggMGE4IDggMCAxIDEgMCAxNkE4IDggMCAwIDEgOCAwWk0xLjUgOGE2LjUgNi41IDAgMSAwIDEzIDAgNi41IDYuNSAwIDAgMC0xMyAwWm00Ljg3OS0yLjc3MyA0LjI2NCAyLjU1OWEuMjUuMjUgMCAwIDEgMCAuNDI4bC00LjI2NCAyLjU1OUEuMjUuMjUgMCAwIDEgNiAxMC41NTlWNS40NDJhLjI1LjI1IDAgMCAxIC4zNzktLjIxNVoiPjwvcGF0aD48L3N2Zz4=\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://codecov.io/gh/Xiaokang2022/maliang\"\u003e\u003cimg alt=\"Code Coverage\" title=\"Code Coverage\" src=\"https://img.shields.io/codecov/c/github/Xiaokang2022/maliang?label=Code Coverage\u0026logoColor=white\u0026logo=codecov\" /\u003e\u003c/a\u003e\n\u003cbr/\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/watchers\"\u003e\u003cimg alt=\"Watchers\" title=\"Watchers\" src=\"https://img.shields.io/github/watchers/Xiaokang2022/maliang?label=Watchers\u0026style=flat\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTggMmMxLjk4MSAwIDMuNjcxLjk5MiA0LjkzMyAyLjA3OCAxLjI3IDEuMDkxIDIuMTg3IDIuMzQ1IDIuNjM3IDMuMDIzYTEuNjIgMS42MiAwIDAgMSAwIDEuNzk4Yy0uNDUuNjc4LTEuMzY3IDEuOTMyLTIuNjM3IDMuMDIzQzExLjY3IDEzLjAwOCA5Ljk4MSAxNCA4IDE0Yy0xLjk4MSAwLTMuNjcxLS45OTItNC45MzMtMi4wNzhDMS43OTcgMTAuODMuODggOS41NzYuNDMgOC44OThhMS42MiAxLjYyIDAgMCAxIDAtMS43OThjLjQ1LS42NzcgMS4zNjctMS45MzEgMi42MzctMy4wMjJDNC4zMyAyLjk5MiA2LjAxOSAyIDggMlpNMS42NzkgNy45MzJhLjEyLjEyIDAgMCAwIDAgLjEzNmMuNDExLjYyMiAxLjI0MSAxLjc1IDIuMzY2IDIuNzE3QzUuMTc2IDExLjc1OCA2LjUyNyAxMi41IDggMTIuNWMxLjQ3MyAwIDIuODI1LS43NDIgMy45NTUtMS43MTUgMS4xMjQtLjk2NyAxLjk1NC0yLjA5NiAyLjM2Ni0yLjcxN2EuMTIuMTIgMCAwIDAgMC0uMTM2Yy0uNDEyLS42MjEtMS4yNDItMS43NS0yLjM2Ni0yLjcxN0MxMC44MjQgNC4yNDIgOS40NzMgMy41IDggMy41Yy0xLjQ3MyAwLTIuODI1Ljc0Mi0zLjk1NSAxLjcxNS0xLjEyNC45NjctMS45NTQgMi4wOTYtMi4zNjYgMi43MTdaTTggMTBhMiAyIDAgMSAxLS4wMDEtMy45OTlBMiAyIDAgMCAxIDggMTBaIj48L3BhdGg+PC9zdmc+\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/forks\"\u003e\u003cimg alt=\"Forks\" title=\"Forks\" src=\"https://img.shields.io/github/forks/Xiaokang2022/maliang?label=Forks\u0026style=flat\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTUgNS4zNzJ2Ljg3OGMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDQuNWEuNzUuNzUgMCAwIDAgLjc1LS43NXYtLjg3OGEyLjI1IDIuMjUgMCAxIDEgMS41IDB2Ljg3OGEyLjI1IDIuMjUgMCAwIDEtMi4yNSAyLjI1aC0xLjV2Mi4xMjhhMi4yNTEgMi4yNTEgMCAxIDEtMS41IDBWOC41aC0xLjVBMi4yNSAyLjI1IDAgMCAxIDMuNSA2LjI1di0uODc4YTIuMjUgMi4yNSAwIDEgMSAxLjUgMFpNNSAzLjI1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBabTYuNzUuNzVhLjc1Ljc1IDAgMSAwIDAtMS41Ljc1Ljc1IDAgMCAwIDAgMS41Wm0tMyA4Ljc1YS43NS43NSAwIDEgMC0xLjUgMCAuNzUuNzUgMCAwIDAgMS41IDBaIj48L3BhdGg+PC9zdmc+\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/stargazers\"\u003e\u003cimg alt=\"Stars\" title=\"Stars\" src=\"https://img.shields.io/github/stars/Xiaokang2022/maliang?label=Stars\u0026color=gold\u0026style=flat\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTggLjI1YS43NS43NSAwIDAgMSAuNjczLjQxOGwxLjg4MiAzLjgxNSA0LjIxLjYxMmEuNzUuNzUgMCAwIDEgLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1MS43NTEgMCAwIDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAgMS0xLjA4OC0uNzlsLjcyLTQuMTk0TC44MTggNi4zNzRhLjc1Ljc1IDAgMCAxIC40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAgMSA4IC4yNVptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMCAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMCAxIC4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAgMSAuNjk4IDBsMi43NyAxLjQ1Ni0uNTMtMy4wODRhLjc1Ljc1IDAgMCAxIC4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwIDEtLjU2NC0uNDFMOCAyLjY5NFoiPjwvcGF0aD48L3N2Zz4=\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/issues\"\u003e\u003cimg alt=\"Issues\" title=\"Issues\" src=\"https://img.shields.io/github/issues/Xiaokang2022/maliang?label=Issues\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTggOS41YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzWiI+PC9wYXRoPjxwYXRoIGZpbGw9IndoaXRlIiBkPSJNOCAwYTggOCAwIDEgMSAwIDE2QTggOCAwIDAgMSA4IDBaTTEuNSA4YTYuNSA2LjUgMCAxIDAgMTMgMCA2LjUgNi41IDAgMCAwLTEzIDBaIj48L3BhdGg+PC9zdmc+\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/pulls\"\u003e\u003cimg alt=\"Pull Requests\" title=\"Pull Requests\" src=\"https://img.shields.io/github/issues-pr/Xiaokang2022/maliang?label=Pull%20Requests\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTEuNSAzLjI1YTIuMjUgMi4yNSAwIDEgMSAzIDIuMTIydjUuMjU2YTIuMjUxIDIuMjUxIDAgMSAxLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAgMSAxLjUgMy4yNVptNS42NzctLjE3N0w5LjU3My42NzdBLjI1LjI1IDAgMCAxIDEwIC44NTRWMi41aDFBMi41IDIuNSAwIDAgMSAxMy41IDV2NS42MjhhMi4yNTEgMi4yNTEgMCAxIDEtMS41IDBWNWExIDEgMCAwIDAtMS0xaC0xdjEuNjQ2YS4yNS4yNSAwIDAgMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwIDEgMC0uMzU0Wk0zLjc1IDIuNWEuNzUuNzUgMCAxIDAgMCAxLjUuNzUuNzUgMCAwIDAgMC0xLjVabTAgOS41YS43NS43NSAwIDEgMCAwIDEuNS43NS43NSAwIDAgMCAwLTEuNVptOC4yNS43NWEuNzUuNzUgMCAxIDAgMS41IDAgLjc1Ljc1IDAgMCAwLTEuNSAwWiI+PC9wYXRoPjwvc3ZnPg==\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/discussions\"\u003e\u003cimg alt=\"Discussions\" title=\"Discussions\" src=\"https://img.shields.io/github/discussions/Xiaokang2022/maliang?label=Discussions\u0026logo=data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTEuNzUgMWg4LjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY1LjVBMS43NSAxLjc1IDAgMCAxIDEwLjI1IDEwSDcuMDYxbC0yLjU3NCAyLjU3M0ExLjQ1OCAxLjQ1OCAwIDAgMSAyIDExLjU0M1YxMGgtLjI1QTEuNzUgMS43NSAwIDAgMSAwIDguMjV2LTUuNUMwIDEuNzg0Ljc4NCAxIDEuNzUgMVpNMS41IDIuNzV2NS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMWEuNzUuNzUgMCAwIDEgLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NDkuNzQ5IDAgMCAxIC41My0uMjJoMy41YS4yNS4yNSAwIDAgMCAuMjUtLjI1di01LjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTguNWEuMjUuMjUgMCAwIDAtLjI1LjI1Wm0xMyAyYS4yNS4yNSAwIDAgMC0uMjUtLjI1aC0uNWEuNzUuNzUgMCAwIDEgMC0xLjVoLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY1LjVBMS43NSAxLjc1IDAgMCAxIDE0LjI1IDEySDE0djEuNTQzYTEuNDU4IDEuNDU4IDAgMCAxLTIuNDg3IDEuMDNMOS4yMiAxMi4yOGEuNzQ5Ljc0OSAwIDAgMSAuMzI2LTEuMjc1Ljc0OS43NDkgMCAwIDEgLjczNC4yMTVsMi4yMiAyLjIydi0yLjE5YS43NS43NSAwIDAgMSAuNzUtLjc1aDFhLjI1LjI1IDAgMCAwIC4yNS0uMjVaIj48L3BhdGg+PC9zdmc+\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/Xiaokang2022/maliang/pulse\"\u003e\u003cimg src=\"https://repobeats.axiom.co/api/embed/b4832e0ac90defe97c7e11e0c9e926793ec7135c.svg\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://star-history.com/#Xiaokang2022/maliang\u0026Date\"\u003e\n        \u003cpicture\u003e\n            \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=Xiaokang2022/maliang\u0026type=Date\u0026theme=dark\" /\u003e\n            \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=Xiaokang2022/maliang\u0026type=Date\" /\u003e\n            \u003cimg src=\"https://api.star-history.com/svg?repos=Xiaokang2022/maliang\u0026type=Date\" /\u003e\n        \u003c/picture\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## 📦 Installation\n\nTo install this package, your Python version must be **`\u003e=3.10`**. Install it with the following command:\n\n```shell\npip install maliang\n```\n\n### 🛠️ Dependencies\n\nHere are the only dependencies that the project must need:\n\n* [`typing-extensions`](https://github.com/python/typing_extensions): provide additional type hints\n\n### 🎨 Optional\n\nThe following packages are optional and will make the project work without installation, but installing them can give you more functionality:\n\n* [`darkdetect`](https://github.com/albertosottile/darkdetect): provide operating system theme detection\n* [`pillow`](https://github.com/python-pillow/Pillow): provide more types of images and optimize image scaling speed\n* [`pywinstyles`](https://github.com/Akascape/py-window-styles): provide some window effects for Windows systems\n* [`hPyT`](https://github.com/Zingzy/hPyT): provide more configuration options for Windows system windows\n* [`win32material`](https://github.com/littlewhitecloud/win32material): provide more configuration options for Windows system windows\n\n**Recommended**, these packages should be installed. You can install all the optional packages with the following command:\n\n```shell\npip install maliang[opt]\n```\n\n### 🧩 Extensions\n\nIn addition to the basic functionality, we also offer a number of extension packs to implement specific functionality. The following official extensions are available:\n\n* [`maliang-mpl`](https://github.com/Xiaokang2022/maliang-mpl): support for `matplotlib`\n* [`maliang-media`](https://github.com/Xiaokang2022/maliang-media): support for media files\n* [`maliang-three`](https://github.com/Xiaokang2022/maliang-three): support for simple 3D drawings\n\nYou can install all the official extensions with the following command:\n\n```shell\npip install maliang[ext]\n```\n\nIn addition, you can find all the third-party extensions that we've collected [here](https://xiaokang2022.github.io/maliang/t%26d/third-party/).\n\n\u003e [!WARNING]  \n\u003e These packages mentioned above are not included in the source code of this project, if you use them and want to redistribute them, please follow their open source license!\n\n## 👀 More\n\n### ℹ️ About\n\nThe logo of this project is taken from the open source project: [`fluentui-emoji`](https://github.com/microsoft/fluentui-emoji), and the name is taken from a Chinese fairy tale: [*《神笔马良》*](https://baike.baidu.com/item/%E7%A5%9E%E7%AC%94%E9%A9%AC%E8%89%AF/14821387)\n\n### 🖼️ Gallery\n\nThe demos below are some of the things that can be achieved with the project, they may be built with the latest version of the project, or they may be built with an older version, but either way, the code for the demo below can be found in the [demo repository](https://github.com/Xiaokang2022/maliang-demos)!\n\n\u003e [!TIP]  \n\u003e Please click **\"Expand\"** to view the gallery\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eExpand\u003c/b\u003e\u003c/summary\u003e\n\n![preview_1](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo9-1.png?raw=true)\n\n![preview_2](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo9-2.png?raw=true)\n\n![preview_3](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo9-3.png?raw=true)\n\n![preview_4](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo9-4.png?raw=true)\n\n![preview_5](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo0-1.png?raw=true)\n\n![preview_6](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo0-2.png?raw=true)\n\n![preview_7](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo1-1.png?raw=true)\n\n![preview_8](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo1-2.png?raw=true)\n\n![preview_9](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo2.png?raw=true)\n\n![preview_10](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo3.png?raw=true)\n\n![preview_11](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo4-1.png?raw=true)\n\n![preview_12](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo4-2.png?raw=true)\n\n![preview_13](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo5-1.png?raw=true)\n\n![preview_14](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo5-2.png?raw=true)\n\n![preview_15](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo6-1.png?raw=true)\n\n![preview_16](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo7-1.png?raw=true)\n\n![preview_17](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo7-2.png?raw=true)\n\n![preview_18](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo8-1.png?raw=true)\n\n![preview_19](https://github.com/Xiaokang2022/maliang-demos/blob/main/preview/demo10-1.png?raw=true)\n\n![project_1](https://github.com/Xiaokang2022/Intelligent-Magic-Cube/blob/main/preview.png?raw=true)\n\n![project_2](https://github.com/Xiaokang2022/Chess/blob/master/preview.png?raw=true)\n\n![project_3](https://github.com/Xiaokang2022/Super-Gobang/blob/main/preview.png?raw=true)\n\n![project_4](https://github.com/Xiaokang2022/TodoList/blob/master/preview.png?raw=true)\n\n\u003c/details\u003e\n\n### 🔗 Links\n\nHere are some links that may be helpful to you:\n\n* 📑 License: [*MIT License*](LICENSE.txt)\n* 📘 Changelog: [*CHANGELOG.md*](CHANGELOG.md)\n* 📕 Security Policy: [*SECURITY.md*](SECURITY.md)\n* 📗 Contribution Guideline: [*CONTRIBUTING.md*](CONTRIBUTING.md)\n* 📙 Code of Conduct: [*CODE_OF_CONDUCT.md*](CODE_OF_CONDUCT.md)\n* 📚 Tutorials and Documents: [Tutorials \u0026 Documents](https://xiaokang2022.github.io/maliang-docs/) ([Mirror](https://maliang-docs.netlify.app/))\n* ❤️ Sponsor this Project: [Sponsor](https://xiaokang2022.github.io/maliang/Sponsor/)\n* 🚀 Repository Mirrors:\n[Gitee](https://gitee.com/Xiaokang2022/maliang),\n[GitCode](https://gitcode.com/Xiaokang2022/maliang)\n\n### 😉 Contributors\n\nMany thanks to the contributions of:\n\n[![Contributors](https://contrib.rocks/image?repo=Xiaokang2022/maliang)](https://github.com/Xiaokang2022/maliang/graphs/contributors)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaokang2022%2Fmaliang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxiaokang2022%2Fmaliang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaokang2022%2Fmaliang/lists"}