🚀Description/模块说明🚀
-----------------------
`tkintertools` 是一个完全没有使用任何第三方模块和库的Python界面开发模块,同时,它也没有任何依赖包,它的功能完全由内置模块和函数实现。
`tkintertools` 是一款基于 `tkinter` 模块的二次开发的界面编程模块,它和 `tkinter` 最大的不同在于,`tkintertools` 的控件并非真实的控件,而是在 `tkinter` 模块中 `Canvas` 对象中绘制而成的,这就赋予了 `tkintertools` 控件一些特性,列举如下:
1. 控件背景可以是透明的👍
2. 控件的样式可以是自定义的👍
3. 控件的创建速度是远大于 `tkinter` 的控件的👍
开发 `tkintertools` 模块选用的 Python 版本为 3.10,在这个及以上版本的 Python 拥有很好的类型提示语法,能为用户提供最好的语法提示。这里没有选择用 .pyi 存根文件的方式来实现类型提示的功能,主要原因是 .pyi 文件不方便和模块真正的文件进行同步修改,而且既然这个类型提示的功能在 Python3.6(Python3.10 的类型提示语法得到进一步强化) 以上在源代码中实现,那何必再用存根文件呢?
使用 Python3.10 强化了的类型提示语法也意味着用户使用的 Python 版本也必须至少为 3.10,为了弥补兼容性,后续会推出兼容版的 tkintertools。目前需要兼容的用户,可以在源代码中自行修改,需要修改的语法如下:
3.9 及更低版本 : 类型提示语法中的 “|”,isinstance 函数中的 “|”
3.7 及更低版本 : 赋值运算符的海象运算符 “:=”
3.6 及更低版本 : `fractions` 模块 `Fraction` 类的 `limit_denominator` 方法(建议升级Python版本)
3.5 及更低版本 : 全部的类型提示语法(建议升级Python版本)
🚀Provides/模块功能🚀
--------------------
Here, only the more distinctive features will be listed
这里只会列举出比较具有特色的功能
### ⭐Customizable widgets/可自定义的控件
### ⭐Automatically control size/自动控制大小
### ⭐Easily move widgets/轻松移动控件
### ⭐Gradient colors/渐变色
### ⭐Automatically adapt to DPI/自动适应DPI
### ⭐Scalable Picture/可缩放图片
🚀Contents/模块内容🚀
--------------------
Each non internal class and function in the module will be described in detail here
这里会详细说明模块中的每个非内部类和函数
### ⭐Container Widget/容器控件
1. `Tk` : 窗口类
继承于 `tkinter.Tk`,在继承了 `tkinter` 模块内 `Tk` 的基础上,又加入了对 `tkintertools` 模块中的 `Canvas` 对象的支持,并加入了检测窗口大小是否缩放的机制,以使得其子 `Canvas` 均能正确地进行缩放
2. `Toplevel` : 顶级窗口类
继承于 `tkinter.Toplevel` 和 `Tk`,加入了对 `tkintertools` 模块中的 `Canvas` 对象的支持,其余均与 `Tk` 一样
3. `Canvas` : 画布类
继承于 `tkinter.Canvas`,加入了对画布虚拟控件的支持,同时是各类响应事件、缩放控制的管理者,也对 `tkinter.Canvas` 的实例方法有一定的兼容性
### ⭐Virtual Canvas Widget/虚拟画布控件
1. `Label` : 标签控件
标签控件的功能和 tkinter.Label 的功能类似,但更加的多元化
下面是 Label 控件的外观: