引言
这一篇只作为笔记,没有实际功能。
两者简介
customtkinter由TomSchimansky于2021年5月创建,有多名贡献者,宣传还是挺足的。
TinUI是我在2021年7月上传到pypi和github,原型在2021年6月就出现了,目前就是我在课余时间玩玩,除了写说明文档外不做宣传,因为没必要,TinUI的实验性质更强,它只是我写完作业后玩的玩具。
两者区别
方向不同
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的部分是我的个人简介,如有错误望原谅和指正。
【笔记】