Python自带的GUI库Tkinter是否值得学习?

Python标准库中的Tkinter是GUI开发的选项之一。它易于入门,API稳定,适合初学者制作小应用。然而,其界面相对简陋,控件基础,对于商业级桌面应用可能不够理想。对于Python程序员,Tkinter是开发小工具和快速原型的良好选择。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Python自带的GUI库Tkinter是否值得学习?

在这里插入图片描述
Python语言可以用在很多方面,网站开发、数据分析、运营维护、游戏开发等等,那么桌面应用程序GUI呢?其实Python标准库里自带Tkinter就是干这个的。相比PyQT、wxPython等等,Tkinter有哪些优势和不足,是否值得学呢?

Tkinter是什么?

要了解Tkinter,首先要从Tcl编程语言说起。Tcl语言全称是“Tool Command Language”,是John Ousterman在1980年代创建的一种解释型编程语言,当时John Ousterman正在加州大学Berkeley分校任职,需要一种相对简明的开发工程工具的编程语言,所以他就用C语言写了这个解释型语言,感觉故事是不是有点像Python!

接下来,他又用C结合Tcl写了个专门用于GUI编程的库,叫着Tk。当年这个Tcl/Tk在1980、1990年代可是非常的流行,尤其是在学术界、工程界和Unx程序员中。

而Tkinter又是什么呢?
我们知道Python最早是在1994年发行其1.1版本的,标准库里需要各方面的库,包括文本处理、图像处理等等,当然也不能少了GUI。Guido van Rossum(Python语言创始人)觉得Tk这个库现成的,而且还挺好用,就不再另造轮子了。他用C语言写了个在Python中可以调用Tk的接口,再把Tcl/Tk一起打包在标准库里,这样Python就可以实现GUI的开发功能。而Python中的这个接口,就是Tkinter。

你是不是会说“怎么能这样!”, 其实呢,这个也很正常啊,好东西,要大家一起分享嘛!不仅Python里是这么直接调用Tk库,Perl、Haskell里面的GUI库也是这个Tcl/Tk。

Tkinter值得学吗?

了解了上面这段Tcl、Tk和Tkinter的历史,我们再来谈谈这些是否值得学习。

其实,任何技术的选择与否,都是看这种技术的特点是否适合你的需求场景。对于Tkinter来说,它的特点大致是这么几个:

1. Python标准库里缺省自带

这个Tkinter可以说,就相当于Python事实上的标准GUI库。有啥好处呢?有Python的地方就有Tkinter,不用另外找第三方库单独安装,从而避免一堆兼容、版本等等的问题,这个对于初学者就比较友好。

2. Tkinter的API比较稳定

十几年前开发的工具,现在基本还能运行。Tcl/Tk从1990年代中后期,更新就非常慢了(基本就没变化),Tcl/Tk8.5版本一直用,直到2012年才憋出个8.6版本。更新慢也有好处,写的程序不会过几年就不好用了。

3. Tkinter就是个单纯的GUI库

Tkinter就是个单纯的GUI库,没有其他东西,真正要实现什么功能,都是依赖Python其他的库。不像PyQT、wxPython这些大而全的框架,什么都要自己弄一套。

4. 简洁

这个特点可以是优点:适合入门、小型应用的开发,但是也导致Tkinter的两大问题,一个是界面相对简陋,虽然现在Tk8.6有所进步,但是比起其他框架还是有不少差距;另一个是提供的控件都是比较基础的,稍微复杂一些的,比如HTML显示组件就要另外想办法。

这么看,Tkinter适合什么场合下学习和使用呢?

如果你是初入门的Python程序员,对Python的基本语法已经有所了解,想做点小应用实践实践,那么推荐你可以学习Tkinter。

因为如果一直开发命令行应用,很多时候不直观,成就感比较低,不能促进进一步学习的兴趣。

而如果这个时候,直接上手开发Web应用,还需要了解一堆html、css、js等前端的东西,比较麻烦,而且就算开发出来也就本机跑跑,真要部署到网络上还有域名、服务器一系列的问题。

而学了Tkinter后,马上可以做一点小应用,比如本地文件管理小工具、看图片的应用、解压小应用……这些小应用的开发,实际上主要是对Python处理这些问题方法和库的了解,Tkinter只是封装一个UI。也就是说你其实是在进一步学习Python。当然,你也可以不断优化这些小工具,当成自己的定制化工具,甚至可以分享给朋友用用,乐趣无穷。

5. 对于有一定基础的Python程序员,什么时候适合学下Tkinter呢?

需要写一些小工具的时候,本身是Python程序员,难免工作中需要一些桌面工具,解决些小问题,学习Tkinter绝对是投入少、产出高的选择。比如笔者以前同事做测试,一些配置工作很麻烦,且很易出错,这个时候用tkinter写个配置小工具,就方便很多。

另一个是可以用Tkinter写一些应用原型。很多时候,一个应用的需求还不是很明确,可以用Tkinter先快速写一个,拿出来大家讨论,进一步明确需求。等真正需求明确了,再根据需求选择技术方案。

总结如下:

Tkinter的特点,比较适合初学者学习Python、Python程序员开发一些小工具、Python程序员做原型应用。

而如果你的目标是开发商用的桌面应用程序的话,那Tkinter可能不适用,建议还是使用PyQT或者直接使用其他语言。

如有疑问,欢迎在评论区一起讨论!

如有不正确的地方,欢迎指导!

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值