TinUI和customtkinter的区别

引言

这一篇只作为笔记,没有实际功能。


两者简介

customtkinter由TomSchimansky于2021年5月创建,有多名贡献者,宣传还是挺足的。

customtkinter · PyPI

TinUI是我在2021年7月上传到pypi和github,原型在2021年6月就出现了,目前就是我在课余时间玩玩,除了写说明文档外不做宣传,因为没必要,TinUI的实验性质更强,它只是我写完作业后玩的玩具。

tinui · PyPI

两者区别

方向不同

custom提供了现代化外观的控件,能够与tkinter原生控件直接结合,编写者可自由决定是否使用其提供的现代化控件。它是一个标准的tkinter拓展库。

TinUI同样提供现代化的控件,但是它更加注重绘制,因为它想解决的是GUI的使用快捷体验。在TinUI框架内编写者被建议使用纯TinUI控件,当然不是必须,其过程是函数式的。它是一个相对于独立于tkinter原生控件的实验性框架。

原理不同

customtkinter提供的实际上是一个一个控件,也就是说,虽然它的控件基本是绘制的,但是它提供的是每一个控件。每一个控件都有自己的属性,并且可以当做普通的tkinter组件一样来使用。

TinUI提供了一个整体框架,也就是一个整体控件,TinUI所有的组件都是在一个框架中绘制出来的,当然可以有多个TinUI框架,但是除了使用BasicTinUI之外,没有办法让里面的控件单独拿出来与tkinter原生控件使用。说白了,就是TinUI基于,但又一定程度独立于tkinter。

定位不同

虽然目前customtkinter能够独立提供的组件种类不及TinUI一半,但TinUI只能算是轻型框架,而customtkinter是重型框架。

从代码量上不难看出,单个组件,TinUI的代码量远低于CTK。CTK是重塑了整个tkinter,所以这需要时间。而TinUI提供的是一个快捷,样式高自定义度的控件框架,并且开放画布元素句柄。

写这篇文章时(2022-5),CTK提供了10个控件,TinUI提供了28个控件。

定位和性质不一样的另一个点在于,CTK提供的是控件的现代化风格,也就是它的每一个控件仍然是一个实体控件,这会造成当控件数量较多时,会出现显示延迟,因为创建每一个组件就是创建每一个画布,并且在上面绘图,步调无法保证统一。但是高精度的绘制提供了比TinUI更加现代化的外观。

在github上,customtkinter的作者发布了一个5秒中的视频,展示窗口控件会不协调地显示出现并渲染。

TinUI提供的一个整体框架,所有组件都派生于这个整体框架,因此组件出现的先后顺序完全取决于编写者,而且别看TinUI产生了多个控件,而实际上占用计算资源的只有TinUI一个框架控件,几乎所有的组件都是绘制出来的,不依赖于tkinter原生控件。TinUI的组件的现代化风格和CTK不一样,CTK对标的是Windows11风格,而TinUI这是参考多个样本。

输入控件的绘制目前不切实际,所有这有文本框和画布是使用原生控件。

两者无法比较优劣。

两者会竞争吗

当然不会,CTK和TinUI是两码事,自己实际使用就知道具体差异了。CTK的控件库对每一个组件提供单独的类,所以CTK是一个简洁却又复杂的系统。TinUI真正有用的就只有一个源码文件,那就是TinUI.py,可以直接放入自己的项目中。


结语

关于CTK的部分是我的个人简介,如有错误望原谅和指正。

【笔记】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值