An auxiliary module of the tkinter module.
Project description
🚀tkintertools🚀
tkintertools 模块是 tkinter 模块的一个辅助模块
The tkintertools module is an auxiliary module of the tkinter module
Install/模块安装👇
Stable Version/稳定版本
- Version/最新版本 :
2.6.6 - Release/发布日期 : 2023/07/01 (UTC+08)
这个是目前的最新稳定版,相对于开发版本而言比较稳定,bug 大体上是没有那么多的,推荐使用这个。
稳定版和开发版相比,它在发布之前有个测试的步骤,经过测试之后(各项功能正常运行,多平台兼容)才会发布。
PIP Cmd/安装命令:
pip install tkintertools==2.6.6
Development Version/开发版本
- Version/最新版本 :
2.6.6.dev0 - Release/发布日期 : 2023/06/29 (UTC+08)
这个是我正在开发的版本,可能有新功能,bug 可能会比较多,但也可能会比原来的版本更加稳定。
开发版没有经过多操作系统的测试,仅能保证在 Windows 系统下运行所有功能,在其他的操作系统上,可能有部分功能无法正常运行。
大家可以在 Issues 中提出一些建议,我可能会适当采纳一些并在开发版本中更改或实现。
PIP Cmd/安装命令:
pip install tkintertools==2.6.6.dev0
Warning
开发版仅作示例,各函数或类的 API 并非最终确定结果,直接使用开发版可能导致后续无法与稳定版兼容!
若不指定具体的版本号,则会下载最新的稳定版本,也就是说,开发版本只能通过指定的版本号获取!
Requirements/环境需求
目前稳定版在以下操作系统中已经测试通过:
可能还有其他的操作系统也是可以运行 tkintertools 的,我没有进行更多的验证。
没有任何额外的依赖包(除了一般 Python 内置的 tkinter),但只支持以下 Python 版本:
News/最新功能👇
最新版本: tkintertools-v2.6.6
Note
现将开发版(tkintertools-dev)合并到稳定版(tkintertools)中,版本号格式变为*.*.*.dev*,大家在通过 pip 工具进行下载时请注意!近段时间内将删除 PyPi 上的 tkintertools-dev!
下面是本次版本更新内容条目:
- 3D 子模块的类
_Point、_Line、_Side和Geometry都新增一个方法center返回该 3D 对象的几何中心; - 新增抽象类
_3D_Object来作为类_Point、_Line和_Side的元基类; - 优化了 3D 子模块中的参数传递,使用者不需要时刻保证
list的传递性,且原来只能使用list类型的参数现在为Iterable类型; - 3D 子模块中 3D 对象居中方式改变,相比原来性能提升了不少,代码量也减少了;
- 改正了部分错误的类型提示,完善了部分缺少的方法注释;
- 3D 子模块中原来用函数
hypot计算两点间距离,现在直接用函数dist计算两点间欧几里得距离,提高性能; - 3D 子模块中优化了类
Point的控件位置显示,让其始终保持在最前; - 3D 子模块中相机距离的计算公式优化,提高了一点性能;
- 3D 子模块的类
Point及其父类_Point的参数point1和point2分别被重命名为point_start和point_end; - 3D 子模块的类
Space的参数origin_color被更改为四个新的参数,分别是origin_size、origin_width、origin_fill和origin_outline; - 3D 子模块的类
Canvas_3D和Space移除参数dx和dy,画布默认视野保持居中,也就是说,现在它们的中心位置才是原来的左上角顶点;
下面是一个主要新功能的示例程序,运行下面的示例程序时,其拥有以下功能:
- 按住鼠标左键拖动可以旋转这多个几何体;
- 按住鼠标右键拖动可以移动这些几何体在空间中的位置;
- 滚动鼠标中键可以放大和缩小画面;
- 这多个几何体会自动地旋转以及上下浮动;
下面是示例程序的效果图(运行环境为 Windows11-Python3.11.4):
点击查看源代码
import math # 数学支持
import tkintertools as tkt # 引入基础模块
from tkintertools import tools_3d as t3d # 引入 3d 子模块
root = tkt.Tk('3D', 1280, 720) # 创建窗口
space = t3d.Space(root, 1280, 720, 0, 0) # 创建空间
for a in -100, 0, 100:
for b in -100, 0, 100:
for c in -100, 0, 100:
t3d.Cuboid(space, a-50, b-50, c-50, 100, 100, 100, # 创建正方体
color_up='white', color_down='yellow', color_left='red',
color_right='orange', color_front='blue', color_back='green')
def spin():
""" 自动旋转 """
for geo in space.geos():
geo.rotate(dz=0.01)
def floating(value):
""" 上下浮动 """
for geo in space.geos():
geo.translate(dz=math.sin(value))
def animation(value=0):
""" 形成动画 """
spin()
floating(value)
space.space_sort() # 给它们的空间位置排序以正确显示
for geo in space.geos():
geo.update()
space.after(10, animation, value+math.pi/60)
def scale(event):
""" 缩放事件 """
k = 1.05 if event.keysym == 'equal' else 0.95 if event.keysym == 'minus' else 1 # 缩放比率
for geo in space.geos(): # 遍历所有的几何体(不包括基本 3D 对象)
geo.scale(k, k, k) # 缩放
geo.update() # 更新改对象的实际画面
space.space_sort() # 空间前后位置排序
animation()
root.bind('<Key-equal>', scale) # 绑定等号按键
root.bind('<Key-minus>', scale) # 绑定减号按键
root.mainloop() # 消息事件循环
More/更多👇
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tkintertools-2.6.6.tar.gz.
File metadata
- Download URL: tkintertools-2.6.6.tar.gz
- Upload date:
- Size: 33.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
918f03ea8c05107c3fd1c3057e4ff6fab6cf7bc759126fcdf89b35d9ab603c5b
|
|
| MD5 |
671dc2cde2639f3ab6df5018656da76c
|
|
| BLAKE2b-256 |
7fd4002fed1658e0d56dc3fa80981526d68f97be345ecbdd83f09eaf5a284648
|
File details
Details for the file tkintertools-2.6.6-py3-none-any.whl.
File metadata
- Download URL: tkintertools-2.6.6-py3-none-any.whl
- Upload date:
- Size: 30.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2925e795776ab420eac277cbde0ecf94f7ae177ec6860a4eddf410783a715170
|
|
| MD5 |
4c55d34d20c032e4b0d7bc12d965fe93
|
|
| BLAKE2b-256 |
a8e60b40e4437daa7062a075071789222a8ae51024ad1356cd271fe4302028de
|